GNU/Linux >> Belajar Linux >  >> Linux

Temukan file dengan karakter windows ilegal dalam namanya di Linux

Find one-liner ini seharusnya cocok untuk Anda:

find . -name "*[<>:\\|?*]*" -exec bash -c 'x="{}"; y="$(sed "s/[<>:\\|?*]\+/-/g" <<< "$x")" && mv "$x" "$y" ' \;

Tak satu pun dari jawaban di atas menemukan file atau direktori yang diakhiri dengan spasi (' ') atau titik/titik ('.') yang juga tidak terlihat dengan Win32 API.

Menambahkan ke .e.g jawaban @falsetru, bisa dilakukan

find . -name '*[<>:/\\|?*]*' -o -name '*[ \.]'

pola fnmatch memungkinkan Anda menentukan karakter itu di [] sebagai berikut:

find . -name '*[<>:/\\|?*]*'

Linux
  1. Cara Menemukan File dengan Perintah fd di Linux

  2. Bagaimana menemukan semua file yang jarang di Linux

  3. Sembunyikan file tersembunyi Linux di Windows

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Bagaimana menemukan semua file yang diakhiri dengan .rb dengan Linux?

  3. Menggunakan find dan tar dengan file dengan karakter khusus pada namanya

  1. Temukan file dan direktori terbesar di Linux

  2. Menggunakan perintah find Linux – Penggunaan dengan contoh

  3. Bagaimana menemukan file duplikat di Linux? Bantuan ada di sini dengan perintah fdupes!