Vorrei costruire una breve funzione per fare quanto segue. Diciamo che sposto il file 'file.tex' nella mia directory dei documenti:
mv file.tex ~/Documents
Quindi, vorrei cd
quella directory:
cd ~/Documents
Vorrei generalizzare questo in qualsiasi directory, in modo da poterlo fare:
mv file.tex ~/Documents
follow
e chiedi al follow
comando di leggere la destinazione dal comando precedente, quindi esegui di conseguenza. Per una directory semplice, questo non fa risparmiare molto tempo, ma quando si lavora con directory nidificate, sarebbe straordinario poter usare
mv file.tex ~/Documents/folder1/subfolder1
follow
Ho pensato che sarebbe stato relativamente semplice e che avrei potuto fare qualcosa del genere:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
ma questo non sembra funzionare. Se echo $place
, ottengo la stringa desiderata (la sto provando con ~/Documents
), ma restituisce l'ultimo comando
No such file or directory
La directory esiste sicuramente. Sono in perdita. Puoi aiutarmi?
cd
alt + .
per sostituire l'ultimo token del comando precedente. Ripeti per tornare indietro nella storia dei token finali. (Dico token non arg, perché foo &
afferra &
come token finale.) Puoi usare un argomento numerico (con escape-3 alt +. Per esempio).
file.tex
la posizione originale, i collegamenti simbolici sono un'ottima alternativa, poiché devi collegarti solo una volta, quindi rimanderà sempre all'ultima versione.