My build of nnn with minor changes
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

organize 1.4 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env sh
  2. # Description: Organize files in directories by category
  3. #
  4. # Shell: POSIX compliant
  5. # Author: th3lusive
  6. organize() {
  7. case "$(file -biL "$1")" in
  8. *video*)
  9. [ ! -d "Videos" ] && mkdir "Videos"
  10. mv "$1" "Videos/$1"
  11. printf "Moved %s to Videos\n" "$1" ;;
  12. *audio*) [ ! -d "Audio" ] && mkdir "Audio"
  13. mv "$1" "Audio/$1"
  14. printf "Moved %s to Audio\n" "$1" ;;
  15. *image*)
  16. [ ! -d "Images" ] && mkdir "Images"
  17. mv "$1" "Images/$1"
  18. printf "Moved %s to Images\n" "$1" ;;
  19. *pdf*|*document*|*epub*|*djvu*|*cb*)
  20. [ ! -d "Documents" ] && mkdir "Documents"
  21. mv "$1" "Documents/$1"
  22. printf "Moved %s to Documents\n" "$1" ;;
  23. *text*)
  24. [ ! -d "Plaintext" ] && mkdir "Plaintext"
  25. mv "$1" "Plaintext/$1"
  26. printf "Moved %s to Plaintext\n" "$1" ;;
  27. *tar*|*xz*|*compress*|*7z*|*rar*|*zip*)
  28. [ ! -d "Archives" ] && mkdir "Archives"
  29. mv "$1" "Archives/$1"
  30. printf "Moved %s to Archives\n" "$1" ;;
  31. *binary*)
  32. [ ! -d "Binaries" ] && mkdir "Binaries"
  33. mv "$1" "Binaries/$1"
  34. printf "Moved %s to Binaries\n" "$1" ;;
  35. esac
  36. }
  37. main() {
  38. for file in *
  39. do
  40. [ -f "$file" ] && organize "$file"
  41. done
  42. }
  43. main "$@"