GNU/Linux >> Belajar Linux >  >> Linux

Ganti nama file secara rekursif (ubah ekstensi) di Linux

Menemukannya

find . -name "*.andnav" -exec rename -v 's/\.andnav$/\.tile/i' {} \;
./0/0.png.andnav renamed as ./0/0.png.tile
./0/1.png.andnav renamed as ./0/1.png.tile
./1/0.png.andnav renamed as ./1/0.png.tile
./1/1.png.andnav renamed as ./1/1.png.tile

tentu saja hapus -v saat benar-benar melakukannya, atau akan membuang waktu untuk menampilkan semua file


Dengan zsh:

autoload zmv
zmv -n '(**/)(*).andnav' '$1$2.tile'

Hapus -n untuk benar-benar melakukan penggantian nama.


Sesuatu seperti:

find . -name '*.andnav' -exec sh -c 'mv "$0" "${0%.andnav}.tile"' {} \;

Penjelasan

Di atas mulai menjalankan pohon direktori mulai dari direktori kerja saat ini (. ). Setiap kali nama file cocok dengan pola *.andnav (mis., foo.andnav ) perintah berikut dijalankan:

sh -c 'mv "$0" "${0%.andnav}.tile"' foo.andnav

Dimana $0 adalah foo.andnav dan ${0%.andnav}.tile menggantikan .andnav akhiran dengan .tile jadi pada dasarnya:

mv foo.andnav foo.tile

Linux
  1. Cara Mengubah atau Mengganti Nama Mount Point di Linux

  2. Menghitung file secara rekursif dalam direktori Linux

  3. Menyalin file tersembunyi secara rekursif - Linux

  1. Cara Mengganti Nama File di Linux

  2. Cara Melihat atau Mengubah ACL di File Linux

  3. Perintah ganti nama Linux

  1. Cara Mengganti Nama File di Linux

  2. Bagaimana cara mengganti nama banyak file dari satu ekstensi ke ekstensi lainnya di Linux / Unix?

  3. Linux mengganti nama file menjadi huruf besar