Saya memiliki beberapa direktori dan sub-direktori yang berisi file tanpa ekstensi file. Saya ingin menambahkan .jpg
ke semua file yang ada di dalam direktori ini. Saya telah melihat skrip bash untuk mengubah ekstensi file tetapi tidak untuk hanya menambahkan satu. Ini juga perlu rekursif, dapatkah seseorang membantu?
bash
file
shell
command-line
file-extension
robjmills
sumber
sumber
for
loop yang mengganggu bash untuk mengulang daftar file, itu tidak benar.for
Loop bash secara berulang mengeluarkan setiapmv
perintah.find
pertama kali membuat daftar file sebelum menjalankan-exec
pernyataan? Saya rasa begitu, tetapi ingin memperjelas poin ini sebelum mengkodekan loop tak terbatas.-not -name "*.*"
akan melakukan triknya.ini akan mencari file tanpa ekstensi dan menambahkan .jpg Anda
sumber
Ini agak terlambat, tetapi saya pikir saya akan menambahkan bahwa solusi yang lebih baik (meskipun mungkin kurang terbaca) daripada yang sejauh ini mungkin:
Menggunakan
find | xargs
pola biasanya menghasilkan eksekusi yang lebih efisien, karena Anda tidak perlu melakukan proses baru untuk setiap file.Perhatikan bahwa ini membutuhkan versi ganti nama yang ditemukan di distro rasa Debian (alias nama awal), daripada penggantian nama tradisional. Ini hanya skrip perl kecil, jadi akan cukup mudah untuk menggunakan perintah di atas pada sistem apa pun.
sumber
seperti ini,
Saya tidak mengharapkan Anda memiliki nama file yang dipisahkan spasi,
Jika ya, nama-nama itu perlu diproses sedikit.
Jika Anda ingin menjalankan perintah dari direktori lain,
Anda dapat mengganti
find .
denganfind /target/directory
.sumber
-type
.Untuk mengganti nama semua file yang tidak berekstensi di Windows basic bisa anda lakukan
ren * *.jpg
Karena file tersebut tidak berekstensi, cukup gunakan *, atau jika ingin merubah png ke jpg gunakanren *.png *.jpg
sumber
rename
tidak yakin itu dapat mengganti nama file tanpa ekstensi (saya di windows 7 sekarang)
sumber
rename
, satu program C termasuk dalam util-linux-ng dan satu lagi program Perl (oleh Wall sendiri) di mesin Debian universitas kami. Sebenarnya, tidak satupun dari keduanya melakukan rekursi.