Saya ingin membuat fungsi singkat untuk melakukan hal berikut. Katakanlah saya memindahkan file 'file.tex' ke direktori dokumen saya:
mv file.tex ~/Documents
Lalu, saya ingin cd
ke direktori itu:
cd ~/Documents
Saya ingin menggeneralisasi ini ke direktori mana saja, sehingga saya bisa melakukan ini:
mv file.tex ~/Documents
follow
dan minta follow
perintah membaca tujuan dari perintah sebelumnya, kemudian jalankan sesuai. Untuk direktori sederhana, ini tidak menghemat banyak waktu, tetapi ketika bekerja dengan direktori bersarang, akan sangat luar biasa untuk dapat menggunakan saja
mv file.tex ~/Documents/folder1/subfolder1
follow
Saya pikir itu akan relatif sederhana, dan saya bisa melakukan sesuatu seperti ini:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
tapi ini sepertinya tidak berhasil. Jika saya echo $place
, saya mendapatkan string yang diinginkan (saya sedang menguji dengan ~/Documents
), tetapi perintah terakhir kembali
No such file or directory
Direktori pasti ada. Saya bingung. Bisakah Anda membantu saya?
cd
alt + .
untuk mengganti token terakhir dari perintah sebelumnya. Ulangi untuk melangkah lebih jauh ke belakang dalam sejarah token terakhir. (Saya katakan token bukan arg, karena foo &
meraih &
sebagai token terakhir.) Anda dapat menggunakan argumen numerik (dengan escape-3 alt +. Misalnya).
file.tex
di lokasi asli, symlink adalah alternatif yang sangat baik, karena Anda hanya perlu menautkan satu kali, dan itu akan selalu mengarah ke versi terbaru.