Kemungkinan Gandakan:
Menggunakan kembali teks pada perintah bash
Jika saya ingin mengganti nama file menjadi beberapa direktori, bagaimana saya bisa menghindari mengulangi path?
Sebagai contoh:
mv path/to/old_filename.txt path/to/new_filename.txt
Saya ingin tahu apakah ada cara untuk membuat ini:
mv path/to/old_filename.txt (?)new_filename.txt
Di mana (?)
akan ada cara untuk mengatakan "di direktori yang sama."
Anda dapat menggunakan ekspansi brace:
mv path/to/{old_filename.txt,new_filename.txt}
Berikut ini adalah tautan ke panduan GNU tentang ekspansi brace di bash shell, yang mendefinisikan daftar pengganti dan memberitahu bash untuk mengulangi parameter menggunakan pengganti yang berbeda setiap kali diulang.
Sebagai contoh,
akan diperluas ke
Satu-satunya peringatan adalah bahwa pengulangan yang diperluas harus dapat mengikuti satu sama lain sebagai argumen untuk program target.
sumber
mv path/to/{old,new}_filename.txt
. Ini juga membantu pembalikan atau jenis lain dari perintah yang dekat dengan pengulangan. Saya sudah berkali-kali melakukan mismv /etc/X11/xorg.conf{,.backup}
, bisa membalikkan proses dengan perubahan sederhanamv /etc/X11/xorg.conf{.backup,}
.Jawaban Darth di atas adalah pintar, tetapi jika Anda ingin menggunakan pendekatan dengan
cd
, Anda juga dapat mempertimbangkan menggunakan subkulit:Karena perubahan direktori terjadi dalam subkulit, Anda tidak akan benar-benar mengubah direktori di shell interaktif Anda.
sumber
old_filename.txt
.Alternatif lain yang berguna, jika Anda akan melakukan beberapa perintah di direktori, adalah ini:
sumber
Saya suka jawaban @ Darth . Inilah alternatifnya:
cd path/to && mv oldfile newfile && cd -
sumber
mv
gagal (mis., Tidak ada izin) Anda akan ditinggalkan dipath/to
direktori. Anda bisa mencobacd path/to && mv oldfile newfile ; cd -
memastikancd -
selalu berjalan, kecuali jikacd path/to
(tidak ada izin) gagal Anda masih akan menjalankancd -
dan pergi ke direktori sebelumnya yang tidak diinginkan. mlc (+1) jawaban subkulit lebih baik. Saya kiracd . && cd path/to && mv oldfile newfile ; cd -
akan bekerja 99,9% dari waktu (dengancd .
hanya gagal jika Anda atau izin dir Anda saat ini berubah; dan dalam hal ini pergi ke dir yang berbeda bukanlah hasil yang buruk.