ubah direktori (cd) di unix berdasarkan pada tindakan sebelumnya

3

Saya melihat posting blog beberapa waktu yang lalu tentang trik menghemat waktu unix yang selama hidup saya belum dapat saya ingat dan halaman manual tidak mencantumkan.

Pada dasarnya itu adalah cara untuk cd ke direktori yang baru saja Anda salin atau pindahkan sesuatu ke. Contoh:

$pwd
/home/stedy
$mv temp /projects/trunk
$cd something
$pwd
/projects/trunk

Adakah yang pernah melihat ini sebelumnya? Apa yang saya lupa setelah perintah cd?

Stedy
sumber

Jawaban:

3

Salah satu opsi adalah menggunakan perintah histori:

$pwd
/home/stedy
$mv temp /projects/trunk
$cd !:2
$pwd
/projects/trunk

!:2mengambil argumen kedua dari perintah sebelumnya. Anda dapat sangat bervariasi kesenangan dengan pengubah, sahabat Anda man bashatau atau info bashmencari ekspansi sejarah (dan pengubah).

pindahkan
sumber
1
!$memberikan argumen terakhir dari perintah sebelumnya dan lebih mungkin untuk secara konsisten melakukan apa yang dimaksudkan tanpa harus memikirkan berapa banyak argumen yang ada, terutama dalam hal sesuatu seperticp foo bar baz dest/
Dennis Williamson
6

Anda dapat menekan Alt- .untuk mendapatkan argumen terakhir dari perintah sebelumnya di Bash, ksh dan zsh. Keystroke sebenarnya ditunjuk sebagai Meta- .yang biasanya berarti menekan Esckemudian ., tetapi Altkombinasi umumnya tersedia. Perhatikan bahwa garis bawah akan berfungsi sebagai pengganti titik. Lihat bagian Garis Baca man bashuntuk informasi lebih lanjut. The readlinefungsi disebut yank-last-arg.

Dennis Williamson
sumber
2

Dalam kebanyakan shell, parameter terakhir yang Anda berikan pada perintah sebelumnya adalah $_

mkdir /some/dir
cd $_
# now in /some/dir
Homolka yang kaya
sumber