Delete files not modified in n days

Useful for clearing out caches that aren't properly cleaned out otherwise.

# Delete files not modified in 30 days
find /tmp -type f -mtime +30 -exec rm {} \;
# Same, but faster
find /tmp -type f -mtime +30 -print0 | xargs -0 -n256 rm

Replace text in all files in & under the current directory

find . -type f -exec sed -i 's/old/new/g' {} \;

Find files NOT named something

# Find files matching a pattern that are NOT already compressed, then compress them
# (This particular example compresses Maildirs for use w/ dovecot's transparent decompression)
find . -type f -name '*S=*' -not -name '*.gz' -print0 | xargs -0 -P4 -n 16 zopfli -l100
# Version that uses pigz
find . -type f -name '*S=*' -not -name '*.gz' -print0 | xargs -0 -n 16 pigz -11 -I100

Fix whitespace issues

for EXTENSION in php css html js txt md; do
  # Remove whitespace (incl. tabs) at the end of lines
  find . -type f -name "*${EXTENSION}" -exec sed -i "s/[[:blank:]]*$//" {} \;
  # Add trailing newlines to the end of a file
  find . -type f -name "*${EXTENSION}" -exec sed -i -e '$a\' {} \;
  # Replace tabs w/ spaces
  find . -type f -name "*${EXTENSION}" -exec sed -i 's/\t/    /g' {} \;
  # UNIX newlines
  find . -type f -name "*${EXTENSION}" -exec dos2unix {} \;

   1 # Compatible w/ GNU find only
   2 find -xtype l -delete

Misc. find recipes

   1 # Find all files NOT owned by a user
   2 find . ! -user $USER […]


SamatsWiki: CheatSheet/GNUFind (last edited 2019-01-13 22:01:38 by SamatJain)