GNU/Linux >> Belajar Linux >  >> Linux

Linux Ganti Nama Banyak File Ekstensi

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

  1. File hanya memiliki satu titik (.)
  2. Ini hanya mengulang semua file di direktori saat ini. Namun, Anda juga dapat memperluasnya untuk mencari file di direktori turunan.
  3. 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


Linux
  1. Cara Membuat Zip Banyak File di Linux

  2. Bagaimana Cara Mengganti Nama Banyak File Menggunakan Find?

  3. Cara Mengganti Nama Banyak File Sekaligus di Linux

  1. Linux:hapus ekstensi file untuk banyak file

  2. Menghapus bagian dari nama file untuk banyak file di Linux

  3. Temukan banyak file dan ganti namanya di Linux

  1. Cara Mengganti Nama File di Linux

  2. Bagaimana Cara Mengubah Ekstensi Banyak File?

  3. Ganti nama file secara rekursif (ubah ekstensi) di Linux