Ganti Nama – Alat Baris Perintah Untuk Mengganti Nama Banyak File di Linux


Kami sering menggunakan perintah “mv” untuk mengganti nama satu file di Linux. Namun, mengganti nama beberapa atau sekelompok file dengan cepat menjadikannya tugas yang sangat sulit di terminal.

Linux hadir dengan alat bawaan yang sangat canggih yang disebut rename. Perintah rename digunakan untuk mengganti nama beberapa atau sekelompok file, mengganti nama file menjadi huruf kecil, mengganti nama file menjadi huruf besar, dan menimpa file menggunakan ekspresi Perl.

Perintah “rename” adalah bagian dari skrip Perl dan berada di bawah “/usr/bin/” di banyak distribusi Linux. Anda dapat menjalankan perintah “yang” untuk mengetahui lokasi perintah rename.

which rename
/usr/bin/rename
Sintaks Dasar Perintah Ganti Nama
rename 's/old-name/new-name/' files

Perintah rename dilengkapi dengan beberapa argumen opsional bersama dengan ekspresi Perl wajib yang memandu perintah rename untuk melakukan pekerjaan sebenarnya.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v: Cetak nama file yang berhasil diganti namanya.
  2. -n: Menampilkan file apa yang akan diganti namanya.
  3. -f: Timpa paksa file yang ada.
  4. perlexpr: Ekspresi Perl.

Untuk lebih memahami utilitas ini, kami telah membahas beberapa contoh praktis dari perintah ini di artikel.

1. Contoh Perintah Dasar Ganti Nama

Misalkan Anda memiliki banyak file dengan ekstensi “.html” dan Anda ingin mengganti nama semua file “.html” menjadi “.php” sekaligus. Misalnya, pertama-tama lakukan “ls -l” untuk memeriksa daftar file dengan ekstensi “.html”.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Sekarang, Anda ingin mengubah ekstensi semua file ini dari “.html” menjadi “.php“. Anda dapat menggunakan perintah “rename” berikut dengan ekspresi Perl seperti yang ditunjukkan di bawah ini.

ravisaive@tecmint:~$ rename 's/\.html$/\.php/' *.html

Catatan: Pada perintah di atas kami menggunakan dua argumen.

  1. Argumen pertama adalah ekspresi Perl yang menggantikan .html dengan .php.
  2. Argumen kedua memberitahu perintah rename untuk mengganti semua file dengan *.php.

Mari kita verifikasi apakah semua file diubah namanya menjadi ekstensi “.php”, dengan melakukan ls -l saat diminta.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.php
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.php
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.php
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.php

Sekarang Anda dapat melihat di atas bahwa semua file html diganti namanya menjadi php.

2. Periksa Perubahan Sebelum Menjalankan Perintah Ganti Nama

Saat melakukan tugas penggantian nama yang penting atau besar, Anda selalu dapat memeriksa perubahan dengan menjalankan perintah rename dengan argumen “-n”. Parameter “-n” akan memberi tahu Anda secara pasti perubahan apa yang akan terjadi, namun perubahan tersebut tidak dilakukan secara nyata. Berikut adalah contoh perintah di bawah ini.

ravisaive@tecmint:~$ rename -n 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

Catatan: Output perintah di atas hanya menampilkan perubahan, namun sebenarnya perubahan tidak dilakukan, kecuali Anda menjalankan perintah tanpa tombol “-n”.

3. Cetak Ganti Nama Keluaran

Kami melihat bahwa perintah rename tidak menampilkan informasi perubahan apa pun. Jadi, jika Anda ingin mendapatkan detail perintah rename (seperti yang kami lakukan menggunakan opsi “-n”), di sini kami menggunakan opsi “-v” untuk mencetak perintah lengkap detail semua perubahan yang berhasil dilakukan dengan perintah rename.

ravisaive@tecmint:~$ rename -v 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

4. Ubah semua Huruf Kecil menjadi Huruf Besar dan Sebaliknya

Untuk mengganti nama semua file secara batch dengan nama huruf kecil menjadi huruf besar. Misalnya, saya ingin menyembunyikan semua file berikut ini dari huruf kecil menjadi huruf besar.

Huruf Kecil ke Huruf Besar
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Cukup gunakan perintah berikut dengan ekspresi Perl.

ravisaive@tecmint:~$ rename 'y/a-z/A-Z/' *.html

Setelah Anda menjalankan perintah di atas, Anda dapat memeriksa perubahannya dengan melakukan “ls -l“.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 ENTERTAINMENT.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 NEWS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 PHOTOS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 SPORTS.HTML

Anda dapat melihat bahwa perintah di atas sebenarnya mengganti nama semua nama file dengan huruf kecil (dengan ekstensi .HTML) menjadi huruf besar.

Huruf Besar ke Kecil

Demikian pula, Anda juga dapat mengonversi semua karakter huruf besar menjadi huruf kecil menggunakan perintah berikut.

ravisaive@tecmint:~$ rename 'y/A-Z/a-z/' *.HTML
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

5. Gunakan huruf kapital pada huruf pertama nama file

Untuk menggunakan huruf besar hanya pada huruf pertama setiap nama file, gunakan perintah berikut.


rename 's/\b(\w)/\U$1/g' *.ext

6. Timpa File yang Ada

Jika Anda ingin menimpa secara paksa file yang ada, gunakan opsi “-f” seperti yang ditunjukkan di bawah ini.

ravisaive@tecmint:~$ rename -f 's/a/b/' *.html

Jika Anda ingin tahu lebih banyak tentang perintah rename, ketik “man rename” di terminal.

Perintah rename sangat berguna, jika Anda berurusan dengan penggantian nama file dalam jumlah banyak atau batch dari baris perintah. Cobalah dan beri tahu saya, sejauh mana kegunaannya dalam hal mengganti nama file.