GNU/Linux >> Belajar Linux >  >> Linux

Linux:hapus ekstensi file untuk banyak file

Anda dapat secara eksplisit meneruskan string kosong sebagai argumen.

rename .old '' *.old

Dan dengan subfolder, find . -type d -exec rename .old '' {}/*.old \; . {} adalah pengganti entri yang ditemukan dengan find , dan \; mengakhiri arglist untuk perintah yang diberikan setelah -exec .


rename sedikit berbahaya, karena menurut halaman manualnya:

rename akan mengganti nama file yang ditentukan dengan mengganti pertama terjadinya...

Itu akan dengan senang hati melakukan hal yang salah dengan nama file seperti c.txt.parser.y .

Inilah solusi menggunakan find dan bash :

find -type f -name '*.txt' | while read f; do mv "$f" "${f%.txt}"; done

Ingatlah bahwa ini akan rusak jika nama file berisi baris baru (jarang, tetapi bukan tidak mungkin).

Jika Anda menemukan GNU, ini adalah solusi yang lebih solid:

find -type f -name '*.txt' -print0 | while read -d $'\0' f; do mv "$f" "${f%.txt}"; done

Saya menggunakan ini:

find ./ -name "*.old" -exec sh -c 'mv $0 `basename "$0" .old`.new' '{}' \;

Versi ganti nama Perl dapat menghapus ekstensi sebagai berikut:

rename 's/\.txt$//' *.txt

Ini dapat digabungkan dengan find untuk juga melakukan sub-folder.


Linux
  1. KRename – Pengubah Nama File Batch yang Kuat untuk Linux

  2. Cara Mengganti Nama Banyak File Bersama di Linux Menggunakan 3 Metode

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

  1. Cara Menggunakan Perintah 'find' untuk Mencari Beberapa Nama File (Ekstensi) di Linux

  2. Bagaimana Cara Mengganti Nama Banyak File Menggunakan Find?

  3. Temukan banyak file dan ganti namanya di Linux

  1. Tunggu Beberapa File Selesai Diunduh?

  2. Linux – Mendapatkan File Untuk Tanggal Saat Ini Di Linux?

  3. Gunakan Temukan dan Temukan untuk mencari file di Linux