+1 Solusi ini berfungsi bahkan jika Anda memiliki spasi di nama file, tetapi yang Anda maksud "$ f" bukan "f".
Adam Zalcman
Ekspansi Parameter Shell agak samar, orang bisa menggunakan nama samaran: untuk f di * .JPG; do mv "$ f" "` basename $ f .JPG`.jpg "; selesai
matematika
@math: Saya lebih suka versi saya karena berfungsi dengan nama file yang mengandung spasi dan juga akan bekerja dengan /path/to/*.JPG. Anda dipersilakan untuk mengirimkan jawaban Anda sendiri, tentu saja :)
Johnsyweb
Tentu saja nama dasar akan menghapus direktori terkemuka tetapi akan bekerja dengan spasi di dalam nama file. (Saya tidak berpikir ini layak jawaban;) jadi saya mempostingnya sebagai komentar)
matematika
10
Jika Anda dapat menggunakan alat eksternal (tidak hanya bash), periksa renameperintah!
Akan cukup mudah untuk membuat ini berfungsi untuk file dengan spasi di namanya: tambahkan saja tanda kutip ganda di sekitar kedua argumen mv.
Adam Zalcman
Saya tidak punya ruang. Apa yang saya tambahkan untuk mewujudkannya di direktori CURRENT. Saat ini saya mendapatkan kesalahan - mv: tidak bisa stat `* .JPG ': Tidak ada file atau direktori seperti itu
Jawaban:
Menggunakan Shell Parameter Expansion :
The
"
karakter akan mengurus nama file yang mengandung spasi, foto-foto sering.sumber
/path/to/*.JPG
. Anda dipersilakan untuk mengirimkan jawaban Anda sendiri, tentu saja :)Jika Anda dapat menggunakan alat eksternal (tidak hanya bash), periksa
rename
perintah!Itu
rename
adalah bagian dariutil-linux
.sumber
perl
yang menerima argumen berbeda untuk melakukan hal yang sama.Jika Anda memiliki spasi dalam nama file:
sumber
Saya menyarankan untuk melihat
mmv
perintah. Ini cocok untuk tugas semacam ini. Dalam skenario Anda, itu akan menjadi:The man page penuh dengan contoh, sehingga tidak membutuhkan waktu untuk terbiasa.
Pada sistem Debian dapat diinstal dengan:
sumber
jika Anda tidak memiliki spasi di nama file:
sumber
mv
.