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 followcommande 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.