Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/.nvm/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/.nvm/rename_test.sh
#! /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 "$@"

Spamworldpro Mini