Saya mencoba mengubah nama file dengan tanda hubung di awal namanya dan keduanya ini:
mv -example-file-name example-file-name
dan ini:
mv '-example-file-name' example-file-name
menghasilkan:
mv: invalid option -- 'e'
linux
command-line
bash
shell
Desmond Hume
sumber
sumber
mv *example-file-name example-file-name
memiliki masalah yang sama, karena ekspansi nama file (AKA globbing) yang terjadi sebelumnyamv
disebut.Jawaban:
Sebagian besar perintah GNU / Linux memungkinkan
--
opsi untuk mengindikasikan akhir opsi sehingga-
kata-kata yang diawali berikutnya tidak diperlakukan sebagai opsi.Tes kecil
sumber
rename
juga. (setidaknya versi yang berfungsi seperti iturename [options] <expression> <replacement> <file>...
, mana saja yang ada.)mv
tidak punya ini :(Jawaban RedGrittyBrick sangat baik. Pilihan lain adalah:
Tes kecil:
sumber
--
.Anda bisa menggunakan ini:
itu bisa mengganti nama semua file :) jika nama file Anda:
setelah menjalankan kode, nama file Anda menjadi:
sumber
Trik ini bekerja untuk saya di saat putus asa. YMMV
Anda harus menghindari tanda hubung untuk mengganti nama untuk mengenalinya. Mengapa mengganti nama tidak menghormati tanda kutip tunggal atau menawarkan semacam pengabaian adalah di luar jangkauan saya.
Ini adalah satu-satunya metode yang saya lihat yang andal menangani tanda hubung menggunakan rename terkemuka. Saya setuju dengan posting lain tentang penggunaan mv, tetapi jika Anda tidak dapat menggunakan mv karena alasan apa pun, ini berfungsi.
sumber