Salah satu cara saya dengan cepat mengganti nama file di Windows adalah
F2 > Rename > Tab (to next file) > Rename ...
Tetapi di Ubuntu / Nautilus, saya tidak bisa menabrak file berikutnya. Tetapi di Linux, saya pikir harus ada alternatif baris perintah.
Namun, kadang-kadang, saya mungkin ingin kontrol lebih besar tentang cara mengganti nama file tertentu. Dalam hal ini, mungkin lebih baik untuk dapat menabrak file berikutnya
command-line
rename
Jiew Meng
sumber
sumber
Jawaban:
Saya menggunakan
rename
semua waktu. Ini cukup sederhana, tetapi mudah-mudahan Anda tahu regex dasar:Ini akan menggantikan string
SEARCH
denganREPLACE
di setiap file (yaitu,*
). The/g
berarti global, jadi jika Anda memilikiSEARCH_SEARCH.jpg
, itu akan berganti namaREPLACE_REPLACE.jpg
. Jika Anda tidak memilikinya/g
, itu akan dilakukan hanya sekali, dan dengan demikian sekarang dinamaiREPLACE_SEARCH.jpg
. Jika Anda ingin tidak peka huruf besar kecil, tambahkan/i
(mungkin itu,/gi
atau/ig
pada akhirnya).Dengan ekspresi reguler, Anda dapat melakukan lebih banyak hal.
Perhatikan bahwa ini
rename
adalah perintahprename
(alias Perlrename
), yang mendukung ekspresi reguler Perl lengkap. Ada lagirename
yang menggunakan pola, dan tidak sekuat itu.prename
dulu diinstal secara default di Ubuntu (bersama dengan Perl), tetapi sekarang Anda mungkin harus melakukan:Berikut ini beberapa contoh:
Awalan
Tambahkan :
document.pdf
diganti namanya menjadiMyPrefix_document.pdf
Hapus :
Anda juga dapat menghapus string yang tidak diinginkan. Katakanlah Anda memiliki 20 file MP3 bernama like
CD RIP 01 Song.mp3
dan Anda ingin menghapus bagian "CD RIP", dan Anda ingin menghapusnya dari semuanya dengan satu perintah.CD RIP 01 Song.mp3
untuk01 Song.mp3
Perhatikan ruang ekstra di
'^CD RIP '
, tanpa spasi semua file akan memiliki ruang sebagai karakter pertama dari file tersebut. Perhatikan juga, ini akan berfungsi tanpa^
karakter, tetapi akan cocokCD RIP
di bagian mana pun dari nama file. The^
jaminan itu hanya menghilangkan karakter jika mereka adalah awal file.Akhiran
Tambahkan :
document.pdf
diganti namanya menjadidocument.pdf_MySuffix
Ubah :
akan berubah
Something.pdf
menjadiSomething.doc
. (Alasan backslash adalah,.
adalah karakter wildcard di regexp jadi.pdf
cocokqPDF
sedangkan\.pdf
hanya cocok dengan string yang tepat.pdf
. Juga sangat penting untuk dicatat, jika Anda tidak terbiasa dengan BASH, Anda harus meletakkan backslash dalam tanda kutip! Anda mungkin tidak menghilangkan tanda kutip! atau gunakan tanda kutip ganda, atau bash akan mencoba menerjemahkannya. Untuk bash\.
dan"\."
sama dengan.
(tapi tanda kutip ganda dan garis miring terbalik digunakan, misalnya "\ n" untuk baris baru, tetapi karena"\."
bukan urutan mundur yang valid, itu bash diterjemahkan ke dalam.
)Sebenarnya, Anda bahkan dapat melampirkan bagian-bagian string dalam tanda kutip, bukan keseluruhan:
's/Search/Replace/g'
sama dengans/'Search'/'Replace'/g
dans/Search/Replace/g
untuk BASH. Anda hanya perlu berhati-hati tentang karakter khusus (dan spasi).Saya sarankan menggunakan
-n
opsi ketika Anda tidak positif Anda memiliki ekspresi reguler yang benar. Ini menunjukkan apa yang akan diganti namanya, lalu keluar tanpa melakukannya. Sebagai contoh:Ini akan mencantumkan semua perubahan yang akan dilakukan, seandainya Anda tidak menaruh
-n
benderanya di sana. Jika terlihat bagus, tekan Upuntuk kembali, lalu hapus-n
dan tekan Enter(atau ganti dengan-v
untuk menampilkan semua perubahan yang dibuatnya).Catatan : Versi Ubuntu di atas 17.04 tidak disertakan
rename
secara default, namun masih tersedia di repositori. Gunakansudo apt install rename
untuk menginstalnyasumber
rename
, ini adalah apa yang saya lakukan untuk menambahkan:for f in *; do mv -v "$f" "prependThis$f"; done
(?:\.[0-9]{3})$
dalam pola Anda, itu akan cocok dengan semua ekstensi file 3 digit dalam grup pasif. Contoh:rename s/^my_favorite_movie.avi(?:\.[0-9]{3})$/random_movie.avi/ *
. Lihat lembar contekan regex ini .Coba pyrenamer .
Ini tidak terintegrasi dengan nautilus, tetapi menyelesaikan pekerjaan. Ini ulasannya.
Thunar (bagian dari XFCE) juga memiliki pemain yang dapat Anda jalankan secara terpisah.
sumber
Tampaknya ada proyek di launchpad yang disebut nautilus-renamer . Anda dapat menginstalnya dengan menjalankan
make install
setelah Anda mengunduh skrip dan membukanya. Tampaknya memiliki beberapa fungsi atau jika Anda tahu beberapa pemrograman mungkin Anda bisa meningkatkannya dengan kebutuhan Anda karena itu hanya skrip python.sumber
Pada baris perintah, untuk mengganti nama file tunggal perintahnya sederhana
Jika Anda ingin melakukannya dalam batch, Anda mungkin ingin melakukannya melalui skrip. Jika Anda memberikan rincian lebih lanjut, saya atau orang lain mungkin dapat menyiapkannya untuk Anda. Yang mengatakan, skrip untuk menambahkan barang ke file mungkin terlihat seperti ini:
Bergantung pada bagaimana tepatnya Anda perlu mengubah nama hal-hal ini kemungkinan akan diubah, misalnya jika Anda memiliki aturan penamaan ulang khusus untuk diikuti. (Secara pribadi saya akan melakukan ini melalui skrip Perl karena bash-foo saya tidak terlalu bagus, tapi itu hanya saya.)
Perhatikan bahwa saya mendapatkan pemisahan nama file dan ekstensi dari pertanyaan yang diajukan sebelumnya .
sumber
Jika Anda ingin melakukannya tanpa baris perintah, sama seperti apa yang Anda lakukan di Windows, gunakan tombol panah kanan dan bukan tombol tab . Ini akan memilih file berikutnya seperti halnya tab di Windows.
sumber
Tidak benar-benar pertanyaan yang sama seperti Bagaimana cara mengganti nama banyak file sekaligus? tapi saya akan menyarankan program yang sama yang saya sarankan dalam jawaban itu: qmv .
qmv adalah alat yang berguna dari paket renameutils. Ini memungkinkan Anda untuk menggunakan editor teks favorit Anda untuk mengganti nama file. Dikombinasikan dengan kekuatan vim, Anda memiliki utilitas penggantian nama yang sangat baik.
Saya biasanya memanggilnya seperti
qmv -f do
di dir di mana saya ingin mengganti nama banyak file. Atau jika saya ingin mengganti nama secara rekursifqmv -R -f do
.Setiap kali saya perlu mengganti nama banyak file, saya selalu kembali ke qmv (dan vim).
http://www.nongnu.org/renameutils/
sumber
Jika satu-satunya pilihan yang cocok adalah mengganti nama file secara manual, cara terbaik untuk melakukannya adalah menggunakan
vidir
(dalammoreutils
paket):Contohnya
Mengganti nama file secara selektif
Konten direktori kerja saat ini:
Jalankan
vidir
, ganti nama file di baris yang berisi nama file yang ingin Anda ganti namanya; tekan CTRL+ Odan CTRL+ X:Berpindah nama file secara selektif
Konten direktori kerja saat ini:
Konten file direktori kerja saat ini:
Jalankan
vidir
, ganti angka-angka di baris yang berisi nama file yang ingin Anda ganti; tekan CTRL+ Odan CTRL+ X:Menghapus file secara selektif
Konten direktori kerja saat ini:
Jalankan
vidir
, hapus baris yang berisi file yang ingin Anda hapus; tekan CTRL+ Odan CTRL+ X:sumber
Saya menggunakan krename. Ini adalah aplikasi GUI. Itu bisa membaca tag mp3 dan sebagainya.
Itu ada sebagai aplikasi terpisah serta bagian dari Krusader.
Ada juga
rename
skrip - yang merupakan bagian dari instalasi perl standar (Anda mungkin sudah menginstalnya). Lihat denganman rename
.sumber