File Management commands

  • Create several folder with a similar pattern:
    mkdir -p ./folder/subfolder{001,002,003}
    
  • Create a symbolic link (source):
    ln -s target link_name
    
  • List size in MiB of subfolders and files in the current folder and display them sorted by size:
    du -cm * | sort -nr
    
  • Case insensitive search from the current folder of all files that have the string dummy in their filename:
    find ./ -iname "*dummy*"
    
  • Recursive and case insensitive content search on non-binary files from the current folder:
    grep -RiI "string to search" ./*
    
  • Find all Jpeg images in the system but exclude /home and /var/lib directory:
    find / -path "/home" -prune -or -path "/var/lib" -prune -or -iname "*.jpg" -print
    
  • Get the list of the latest 10 modified files in the current folder tree:
    find ./ -printf "%TY-%Tm-%Td %TT %p\n" | sort | tail -n10
    
  • Same as above but sorted by latest access time:
    find ./ -printf "%AY-%Am-%Ad %AT %p\n" | sort | tail -n10
    
  • Rename all mp3 files in the current folder by adding a “sub-extension”:
    rename "s/\.mp3/\.my-sub-extension\.mp3/g" *.mp3
    
  • Convert all files in the current folder to lower case:
    rename 'y/A-Z/a-z/' *
    
  • Display the total size used by all PNG files in sub-directories:
    find ./ -iname "*.png" -exec du -k "{}" \; | awk '{c+=$1} END {printf "%s KB\n", c}'
    
  • List all files sharing the same name within the sub folders:
    find . -type f -printf "%f\n" | sort | uniq --repeated --all-repeated=separate
    

Dangerous Commands

  • Delete all .pyc and .pyo files in the system:
    find / -name "*.py[co]" | xargs rm
    
  • Delete all empty files and folders (I don’t know why, but I need to run this command several times to delete all empty folders):
    find ./* -empty -print -exec rm -rf "{}" \;
    
  • I used those commands when I import big quantity of files from a window user:
    find ./* -name "desktop.ini" -print -exec rm -f "{}" \;
    find ./* -name "Thumbs.db" -print -exec rm -f "{}" \;
    
  • Delete all files and folders in the current directory except the README.txt file:
    ls ./ -I "README.txt" | xargs rm -rf