Je voudrais construire une fonction courte pour faire ce qui suit. Disons que je déplace le fichier 'file.tex' dans mon répertoire de documents:
mv file.tex ~/Documents
Ensuite, je voudrais cd
à ce répertoire:
cd ~/Documents
Je voudrais généraliser cela à n'importe quel répertoire, afin de pouvoir le faire:
mv file.tex ~/Documents
follow
et demandez à la follow
commande de lire la destination de la commande précédente, puis exécutez-la en conséquence. Pour un répertoire simple, cela ne fait pas gagner beaucoup de temps, mais lorsque vous travaillez avec des répertoires imbriqués, il serait formidable de pouvoir simplement utiliser
mv file.tex ~/Documents/folder1/subfolder1
follow
Je pensais que ce serait relativement simple et que je pourrais faire quelque chose comme ça:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
mais cela ne semble pas fonctionner. Si je fais écho $place
, j'obtiens la chaîne souhaitée (je la teste ~/Documents
), mais la dernière commande retourne
No such file or directory
Le répertoire existe certainement. Je suis à perte. Pourrais-tu m'aider?
cd
alt + .
pour remplacer le dernier jeton de la commande précédente. Répétez pour remonter plus loin dans l'histoire des jetons finaux. (Je dis que le jeton n'est pas arg, car il foo &
s'empare &
du dernier jeton.) Vous pouvez utiliser un argument numérique (avec escape-3 alt +. Par exemple).
file.tex
à l'emplacement d'origine, les liens symboliques sont une très bonne alternative, car vous ne devez créer un lien qu'une seule fois, puis il pointera toujours vers la dernière version.