Ich möchte eine kurze Funktion erstellen, um Folgendes zu tun. Angenommen, ich verschiebe die Datei 'file.tex' in mein Dokumentenverzeichnis:
mv file.tex ~/Documents
Dann möchte ich cd
zu diesem Verzeichnis:
cd ~/Documents
Ich möchte dies auf ein beliebiges Verzeichnis verallgemeinern, damit ich dies tun kann:
mv file.tex ~/Documents
follow
und lassen Sie den follow
Befehl das Ziel aus dem vorherigen Befehl lesen und dann entsprechend ausführen. Bei einem einfachen Verzeichnis spart dies nicht viel Zeit, aber wenn Sie mit verschachtelten Verzeichnissen arbeiten, wäre es enorm, wenn Sie nur diese verwenden könnten
mv file.tex ~/Documents/folder1/subfolder1
follow
Ich dachte, es wäre relativ einfach und ich könnte so etwas tun:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
aber das scheint nicht zu funktionieren. Wenn ich wiederhole $place
, erhalte ich die gewünschte Zeichenfolge (ich teste sie mit ~/Documents
), aber der letzte Befehl wird zurückgegeben
No such file or directory
Das Verzeichnis existiert auf jeden Fall. Ich bin ratlos. Könntest du mir helfen?
cd
alt + ein, .
um das letzte Token des vorherigen Befehls zu ersetzen. Wiederholen Sie diesen Vorgang, um weiter in die Geschichte der letzten Token zurückzugehen. (Ich sage Token nicht Arg, weil foo &
Grabs &
das letzte Token ist.) Sie können ein numerisches Argument verwenden (zum Beispiel mit Escape-3 Alt +.).
file.tex
den ursprünglichen Speicherort beizubehalten , da Sie nur einmal verlinken müssen und dann immer auf die neueste Version verweisen.