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 Mint - menambahkan variabel lingkungan secara permanen
perintah apache suexec tidak ada di docroot