Kita bisa menggunakan mv
perintah untuk mengubah nama file. Kita dapat menggunakannya untuk mengubah ekstensi file juga. Namun, ini hanya berfungsi dengan satu file dan tidak memerlukan karakter liar.
Kita dapat membuat skrip shell untuk mengubah ekstensi beberapa file sekaligus.
Skrip Shell Linux untuk Mengubah Ekstensi Beberapa File
Mari kita lihat kode skrip di mana kita akan menggunakan perintah mv dalam loop for untuk mengubah ekstensi semua file di direktori saat ini.
#!/bin/sh
#Save the file as multimove.sh
IFS=$'\n'
if [ -z "$1" ] || [ -z "$2" ]
then
echo "Usage: multimove oldExtension newExtension"
exit -1
fi
# Loop through all the files in the current directory
# having oldExtension and change it to newExtension
for oldFile in $(ls -1 *.${1})
do
# get the filename by stripping off the oldExtension
filename=`basename "${oldFile}" .${1}`
# determine the new filename by adding the newExtension
# to the filename
newFile="${filename}.${2}"
# tell the user what is happening
echo "Changing Extension \"$oldFile\" --> \"$newFile\" ."
mv "$oldFile" "$newFile"
done
Penggunaan :multimove.sh doc txt
(untuk mengubah semua .doc menjadi .txt)
Menguji Skrip Rename Shell
Di bawah ini adalah contoh output dari eksekusi program di atas.
$ ls
abc.txt hi.doc journaldev.doc multimove.sh
$ ./multimove.sh doc txt
Changing Extension "hi.doc" --> "hi.txt" .
Changing Extension "journaldev.doc" --> "journaldev.txt" .
$ ls
abc.txt hi.txt journaldev.txt multimove.sh
$ ./multimove.sh txt doc
Changing Extension "abc.txt" --> "abc.doc" .
Changing Extension "hi.txt" --> "hi.doc" .
Changing Extension "journaldev.txt" --> "journaldev.doc" .
$ ls
abc.doc hi.doc journaldev.doc multimove.sh
$
Asumsi dan Batasan Skrip
- File hanya memiliki satu titik (.)
- Ini hanya mengulang semua file di direktori saat ini. Namun, Anda juga dapat memperluasnya untuk mencari file di direktori turunan.
- Spasi putih pada nama file dapat menyebabkan masalah dengan skrip. Ini telah bekerja di sistem saya dengan nama file yang memiliki spasi, tetapi saya tidak dapat menjamin bahwa itu akan bekerja untuk Anda juga.
Bacaan Lebih Lanjut: Perintah mv Linux