Mengganti nama banyak file dan direktori dengan perintah mv
bisa menjadi proses yang membosankan karena melibatkan penulisan perintah kompleks dengan piping, loop, dan sebagainya.
Di sinilah perintah rename
berguna. Seperti namanya, rename atau “ubah nama” file yang diberikan dengan mengganti ekspresi pencarian di namanya dengan penggantian yang ditentukan..
Dalam tutorial ini, kami akan menjelaskan bagaimana cara menggunakan perintah rename
untuk membuat batch nama file.
Cara Install rename
Ada dua versi perintahrename
dengan sintaks dan fitur yang berbeda. kita akan menggunakan versi Perl dari perintahrename
.
Jika versi ini tidak diinstal pada sistem Anda, gunakan manajer paket distribusi Linux Anda untuk menginstalnya:
- Ubuntu dan Debian
sudo apt update sudo apt install rename
- CentOS dan Fedora
sudo yum install prename
- Arch Linux
yay perl-rename
Menggunakan rename
Berikut ini adalah sintaks umum untuk perintah rename
:
rename [OPTIONS] perlexpr files
Perintah rename
pada dasarnya adalah skrip Perl. Ini akan mengganti nama file
yang diberikan sesuai dengan regular expressions perlexpr
yang ditentukan. Anda dapat membaca tentang regular expressions Perl di sini.
Misalnya, perintah berikut akan mengubah ekstensi semua file .css
ke .scss
:
rename 's/.css/.scss/' *.css
Mari kita jelaskan perintah ini dengan lebih detail:
s/search_pattern/replacement/
– Operator substitusi.- .css – Pola pencarian. Ini adalah argumen pertama dalam operator substitusi. Perintah
rename
akan mencari pola ini dalam nama file yang diberikan dan jika ditemukan akan menggantinya dengan argumen penggantian. - .scss – Pengganti. Argumen kedua di operator substitusi.
- * .css – Semua file dengan ekstensi “.css”. Wildcard (
*
) adalah simbol yang digunakan untuk mewakili nol, satu atau lebih karakter.
Sebelum menjalankan perintah aktual dan mengganti nama file dan direktori itu selalu merupakan ide yang baik untuk menggunakan opsi -n
yang akan melakukan “dry run” dan menunjukkan kepada Anda file apa yang akan diubah namanya:
rename -n 's/.css/.scss/' *.css
Outputnya akan terlihat seperti ini:
rename(file-0.css, file-0.scss) rename(file-1.css, file-1.scss) rename(file-2.css, file-2.scss) rename(file-3.css, file-3.scss) rename(file-4.css, file-4.scss)
Secara default, perintahrename
tidak menimpa file yang ada. Gunakan opsi -f
yang memberitahu rename
untuk menimpa file yang ada:
rename -f 's/.css/.scss/' *.css
Jika Anda inginrename
untuk mencetak nama file yang berhasil diubah namanya, gunakan opsi -v
(verbose):
rename -v 's/.css/.scss/' *.css
file-0.css renamed as file-0.scss file-1.css renamed as file-1.scss file-2.css renamed as file-2.scss file-3.css renamed as file-3.scss file-4.css renamed as file-4.scss
Contoh Penggunaan rename
Di bawah ini adalah beberapa contoh umum tentang cara menggunakan perintah rename
:
Ganti spasi dalam nama file menjadi underscore
rename 'y/ /_/' *
Ubah Semua nama file menjadi lowercase
rename 'y/A-Z/a-z/' *
Ubah semua nama file menjadi UPPERCASE
rename 'y/a-z/A-Z/' *
Hapus ekstensi .bak
dari name file
rename 's/\.bak$//' *.bak
Ganti ekstensi .jpeg
dan .JPG
menjadi .jpg
rename 's/\.jpe?g$/.jpg/i' *
Kesimpulan
Perintah rename
memungkinkan Anda untuk mengganti nama beberapa file sekaligus, menggunakan ekspresi reguler Perl.