Aşağıdakileri yapmak için kısa bir işlev kurmak istiyorum. Diyelim ki 'file.tex' dosyasını belgeler dizinime taşıyorum:
mv file.tex ~/Documents
Sonra, cd
bu dizine istiyorum :
cd ~/Documents
Bunu yapabilmek için bunu herhangi bir dizine genelleştirmek istiyorum:
mv file.tex ~/Documents
follow
ve follow
komutun hedefi önceki komuttan okumasını sağlayın, ardından buna göre çalıştırın. Basit bir dizin için bu çok zaman kazandırmaz, ancak iç içe geçmiş dizinlerle çalışırken, yalnızca
mv file.tex ~/Documents/folder1/subfolder1
follow
Ben nispeten basit olacağını düşündüm ve böyle bir şey yapabileceğini:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
ama bu işe yaramıyor gibi görünüyor. Eğer yankı $place
yaparsam, istenen dizeyi alırım (ile test ediyorum ~/Documents
), ancak son komut geri döner
No such file or directory
Dizin kesinlikle var. Kayboldum. Bana yardımcı olabilir misin?
cd
alt + .
yazın. Son jetonların tarihinde daha ileri gitmek için tekrarlayın. (Çünkü değil arg belirteci demek foo &
kıskaçlar &
Bir sayısal argüman kullanabilirsiniz nihai ifadesi olarak.) (Kaçış-3 alt + ile. Örneğin).
file.tex
Orijinal konumda sakıncası yoksa , sembollerin çok iyi bir alternatif olduğunu belirtmek isterim, çünkü sadece bir kez bağlantı kurmanız gerekir ve daha sonra her zaman en son sürüme işaret eder.