Anda bisa menggunakan kemampuan subtitusi teks shell Anda. Di bash
, Anda bisa menggunakan binatang seperti:
mv blob/a_long_directory_name/c/xx !#:$:gs^c/xx^evenmore/yy
Untuk memecahnya:
!#
adalah baris saat ini diketik sejauh ini
:$
meminta untuk memilih kata terakhir (ganti dengan nomor n
untuk memilih n
kata th) dari string yang sedang dipertimbangkan ( !#
dalam hal ini). Kata terakhir dari baris yang diketik sejauh ini adalah kata sebelumnya.
:gs^xx^yy
melakukan global ( g
) subtitusi teks ( s
) pada kata yang dihasilkan, menggantikan 'xx' dengan 'yy'. ^
hanyalah pembatas untuk s
perintah untuk mengizinkan penggunaan /
dalam pola Anda.
Metode ini sedikit lebih umum karena memungkinkan Anda mengganti bagian mana pun dari jalur ('xx') dengan kata lain ('yy').
Terakhir, seperti halnya manipulasi riwayat apa pun, ada baiknya mengatur opsi shell yang sesuai (misalnya di ~/.bashrc
). Pada kasus ini
shopt -s histverify
akan menampilkan baris yang diedit setelah Anda menekan kembali, sehingga Anda masih dapat mengeditnya dan memeriksa kesalahan.
Mengapa Anda menggunakan konstruk seperti itu, saya tidak yakin, tetapi berfungsi dalam hal ini.
even_more
jalan relatif ...