Mengganti nama file dan direktori adalah salah satu tugas paling mendasar yang sering perlu Anda lakukan pada sistem Linux.
Mengganti nama file tunggal itu mudah, tetapi mengganti nama banyak file sekaligus bisa menjadi tantangan, terutama bagi pengguna yang baru mengenal Linux. Anda dapat mengganti nama file menggunakan File manager di sistem yang mendukung GUI. Lalu bagaimana jika Anda bekerja di sistem yang hanya mendukung baris perintah?.
Diharapkan Anda membuka konsol terminal distribusi Linux untuk mengikuti panduan di halaman ini agar Anda lebih memahami cara mengubah nama file atau direktori melalui Linux Terminal.
Kami juga sarankan Anda untuk menguji setiap tutorial atau panduan apapun yang ada di Internet di virtual machine (vmware atau virtualbox) sebelum menerapkan ke server produksi, agar tidak mengacaukan sistem yang aktif berjalan ketika ada kesalahan.
Anda bisa melihat cara installasi VMware di Ubuntu dan CentOS, dan VirtualBox di Ubuntu, Fedora, dan CentOS
Dalam tutorial ini, kami akan menunjukkan kepada Anda cara menggunakan perintah mv
dan perintah rename
untuk mengganti nama file dan direktori.
Mengganti nama file dengan Perintah mv
Perintah mv ( singkatan dari move) digunakan untuk mengubah nama atau memindahkan file dari satu lokasi ke lokasi lain.
Sintaks untuk perintah mv adalah sebagai berikut:
mv [OPTIONS] sumber tujuan
sumber
dapat berupa satu atau lebih file atau direktori dan tujuan
dapat berupa satu file atau direktori.
- Jika Anda menentukan beberapa file sebagai
sumber
, tujuan harus berupa direktori. Dalam hal ini, filesumber
dipindahkan ke direktori target. - Jika Anda menentukan satu file sebagai
sumber
, dan targettujuan
adalah direktori yang ada maka file tersebut akan dipindahkan ke direktori yang ditentukan. - Untuk mengganti nama file, Anda perlu menentukan satu file sebagai sumber, dan satu file sebagai target
tujuan
.
Misalnya, untuk mengubah nama file dari file1.txt
menjadi file2.txt
Anda dapat menjalankan perintah berikut:
mv file1.txt file2.txt
Cara Mengganti nama beberapa file dengan Perintah mv
Perintah mv
hanya dapat mengganti nama satu file pada satu waktu, tetapi dapat digunakan bersama dengan perintah lain, seperti perintah find atau dalam skrip bash for atau while loop untuk mengganti nama beberapa file.
Contoh berikut menunjukkan cara menggunakan Bash for loop untuk mengubah nama semua file .txt
di direktori kerja saat ini dengan mengubah ekstensi .txt
menjadi .php
.
for f in *.txt; do mv -- "$f" "${f%.txt}.php" done
Mari kita menganalisis kode baris demi baris:
- Baris pertama membuat
loop
untuk statementfor
, untuk mencari semua daftar file yang berakhiran dengan .txt. - Baris kedua berlaku untuk setiap item di dalam daftar dan memindahkan file ke yang format baru menggantikan .txt dengan .php. Bagian
${file%.txt}
menggunakan ekspansi parameter shell untuk menghapus bagian.txt
dari nama file. - done, berarti mengindikasikan akhir dari segmen loop.
Kita juga dapat menggunakan perintah mv
dalam kombinasi dengan find
untuk mencapai hasil yang sama seperti di atas.
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.php"' \;
Perintah find melewati semua file yang diakhiri dengan .txt
di direktori saat ini ke perintah mv
satu per satu menggunakan switch -exec
. String {}
adalah nama file yang akan diproses.
Seperti yang Anda lihat dari contoh di atas, mengganti nama beberapa file menggunakan perintah mv
bukanlah tugas yang mudah karena membutuhkan pengetahuan yang baik tentang skrip Bash.
Mengganti nama file dengan perintah rename
Perintah rename
digunakan untuk mengganti nama banyak file. Perintah ini lebih maju dibanding perintah mv
, karena memerlukan pengetahuan dasar tentang ekspresi reguler.
Ada dua versi perintah rename
dengan sintaks yang berbeda. Dalam tutorial ini, kita akan menggunakan versi perl
dari perintah rename
. Jika Anda belum menginstal rename
di sistem Anda, Anda dapat menginstalnya dengan mudah menggunakan manajer paket distribusi Anda.
- Install rename di Ubuntu dan Debian
sudo apt install rename
- Install rename di CentOS dan Fedora
sudo yum install prename
- Install rename di Arch Linux
yay perl-rename ## atau yaourt -S perl-rename
Sintaks perintah rename
sebagai berikut :
rename [OPTIONS] perlexpr files
Perintah rename akan mengganti nama semua files
sesuai dengan ekspresi reguler perlexpr
yang ditentukan. Anda dapat membaca lebih lanjut tentang ekspresi reguler perl di sini.
Misalnya, perintah berikut akan mengubah semua file dengan ekstensi .txt
ke .py
:
rename 's/.txt/.py/' *.txt
Anda bisa menggunakan argumen -n
untuk mencetak nama file yang akan diganti namanya, tanpa mengubah nama mereka.
rename -n 's/.txt/.py/' *.html
Output dari perintah di atas :
rename(file-10.txt, file-10.py) rename(file-11.txt, file-11.py) rename(file-12.txt, file-12.py) rename(file-13.txt, file-13.py) rename(file-14.txt, file-14.py)
Secara default, perintah rename tidak akan menimpa file yang ada. Gunakan argumen -f
untuk memungkinkan file yang ada agar di timpa.
rename -f 's/.txt/.py/' *.html
Di bawah ini adalah beberapa contoh umum tentang cara menggunakan perintah rename
:
- ubah spasi di nama file menjadi underscores (misal ini_adalah_nama_file)
rename 'y/ /_/' *
- Ubah nama file menjadi lowercase (huruf kecil semua)
rename 'y/A-Z/a-z/' *
- Ubah nama file menjadi uppercase (huruf besar semua)
rename 'y/a-z/A-Z/' *
Kesimpulan
Sekarang Anda sudah memiliki pemahaman yang baik tentang bagaimana menggunakan perintah mv
dan perintah rename untuk mengganti nama file. Tentu saja ada perintah lain untuk mengganti nama file di Linux seperti mmv
. Pengguna Linux baru yang terintimidasi oleh baris perintah dapat menggunakan alat mengubah nama batch GUI seperti Métamorphose.