Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /home/picotech/.nvm/ drwxr-xr-x |
Viewing file: Select action/file-type: #! /usr/bin/env bash find_name(){ find test -name "*[\\/:\*\?\"<>\|]*" -o -name "*." } check_name() { if [ "$(find_name | wc -l)" != "0" ]; then printf '%s\n\n' "The following filenames contain unwanted characters:" find_name printf '\n%s\n%s\n' "Please run ./rename_test.sh" "If the problem persist, please open an issue." exit 1 else echo "Ok" fi } rename_test() { local filename local new_filename while read -r filename; do # Even though it looks < and > are replaced by the same < and >, the latters are not ASCII code # If you check with 'cat -v rename_test.sh' you would see 's/</M-KM-^B/g' and 's/>/M-KM-^C/g' # M-KM-^B -> U+02C2 # M-KM-^C -> U+02C3 new_filename=$(echo "$filename" | sed -r \ -e "s/\"/'/g" \ -e 's/</˂/g' \ -e 's/>/˃/g' \ -e 's/^(.*)\.$/\1/' ) printf '%s\n%s\n\n' "$filename" "$new_filename" [ "$filename" != "$new_filename" ] && git mv "$filename" "$new_filename" done < <(find_name) if [ "$(find_name | wc -l)" != "0" ]; then echo "Still some files to treat:" find_name else echo "Done" fi } main() { if [ "$1" = "--check" ]; then check_name else rename_test fi } main "$@" |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0043 ]-- |