5 votes

Changer de répertoire cd vers le répertoire de travail (cwd) d'un autre terminal

Je voudrais créer une commande comme cd - (appelons-la cdp) qui changera les répertoires vers le dernier répertoire changé depuis une autre fenêtre de terminal, similaire à l'option d'ouvrir un nouveau terminal dans le répertoire où se trouvait la fenêtre/onglet précédent (je ne vois pas cette option dans le terminal Mac OS X).

Pour ce faire, je pourrais modifier cd avec quelque chose comme alias cd='cd $1;echo $PWD > /tmp/CWD' et ajouter ensuite

alias cdp='cd  `cat /tmp/CWD`

Est-ce que quelqu'un peut proposer une meilleure solution ? Ou me renseigner sur un programme, une fonctionnalité, etc., existant(e), s'il vous plaît faites-le moi savoir. Sur Mac OS X 10.6 avec le terminal par défaut. Merci.

4voto

Damian Powell Points 315

Les alias n'acceptent pas de paramètres. Vous devrez utiliser une fonction. Vous devriez également utiliser le command intégré.

function cd () { command cd "$@"; echo "$PWD" > /tmp/CWD; }

alias cdp='cd "$(

`

Voir ceci pour une autre approche spécifique à OS X. Il s'agit d'un script qui peut ouvrir une nouvelle fenêtre ou onglet Terminal en ouvrant avec le même répertoire que celui de la fenêtre ou onglet Terminal actuel.

`

0 votes

Cela va poser problème avec des espaces dans le nom de fichier, n'est-ce pas? Vous auriez besoin de cdp = 'cd "$(. Ou configurez votre substitution cd en `ln -sf "$PWD" /tmp/CDW`, et `cdp = 'cd -P /tmp/CWD'`. C'est toujours lourd et ne fonctionne que pour un répertoire, même si vous avez plusieurs terminaux CDed à plusieurs endroits. (le cd le plus récent gagne, pas le terminal le plus récemment utilisé). Je suppose que l'application Terminal de Mac OS n'a pas d'option pour ouvrir de nouveaux onglets / fenêtres avec le même CWD que le processus fils dans le terminal actuellement focalisé, comme le fait gnome-terminal.

0 votes

@PeterCordes : Merci d'avoir repéré cette omission.

0 votes

Crocheter cd, au lieu de PROMPT_COMMAND='pwd > /tmp/"CWD.$USER"' est une bonne idée, cependant. Je l'ai utilisé pour superuser.com/questions/874574/…

0voto

mdoar Points 100

J'aime mieux la solution à http://hints.macworld.com/article.php?story=20051231110014263:

Ouvrir de nouvelles fenêtres xterm dans le répertoire Terminal actuel Auteur: TomP le 04 janv. 2006 à 22h05:12

Comme alternative légèrement plus flexible, j'ai un petit script shell ("openterminal.sh") qui ouvrira une nouvelle fenêtre Terminal dans le même répertoire que la session Terminal à partir de laquelle il a été invoqué. Voici le script:

#!/bin/sh
# 
# Ouvrir une autre fenêtre de terminal pour le répertoire actuel
#
# Droits d'auteur 2004 par Tom Pollard - Tous droits réservés.
#
#set -x
CWD=`pwd`
osascript<

`

J'ai ceci en alias 'ot'. Donc, lorsque je veux une autre fenêtre Terminal ouverte dans le même répertoire qu'une autre fenêtre Terminal (pas nécessairement la dernière que j'ai utilisée ou ouverte), je dis simplement 'ot' dans cette session Terminal.

`

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X