find
Search for files in a directory hierarchy (https://www.gnu.org/software/findutils/)
To find files following symlinks (otherwise the symlinks are not followed)
To find files by case-insensitive extension (ex: .jpg, .JPG, .jpG)
To find files by octal permission
To find files with setuid bit set
find . -xdev \( -perm -4000 \) -type f -print0 | xargs -0 ls -l
To find files newer than 1 day old and copy elsewhere (remove -p flag in xargs to not be asked)
find . -type f -ctime -1 -print0 | xargs -0 -p cp -t <dir>
or
find . -type f -ctime -1 -print0 | xargs -0 -p -J % cp % <dir>
To find files with extension '.txt' and remove them
find ./path/ -name '*.txt' -delete
To find files with tilde as postfix and remove them
find ./path/ -name '*~' -delete
To find files with extension '.txt' and dump their contents
find ./path/ -name '*.txt' -exec cat '{}' \;
To find files with extension '.txt' and look for a string into them
find ./path/ -name '*.txt' | xargs grep 'string'
To find files with size bigger than 5 Mebibyte and sort them by size
find . -size +5M -type f -print0 | xargs -0 ls -Ssh | sort -z
To find files bigger than 2 Megabyte and list them
find . -type f -size +200000000c -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
To find files modified more than 7 days ago and list file information
find . -type f -mtime +7d -ls
To find symlinks owned by a user and list file information
find . -type l -user <username-or-userid> -ls
To search for and delete empty directories
find . -type d -empty -exec rmdir {} \;
To search for directories named build at a max depth of 2 directories
find . -maxdepth 2 -name build -type d
To search all files who are not in .git directory
find . ! -iwholename '*.git*' -type f
To find all files that have the same node (hard link) as MY_FILE_HERE
find . -type f -samefile MY_FILE_HERE 2>/dev/null
To find all files in the current directory and modify their permissions
find . -type f -exec chmod 644 {} \;
To find all files changed in last 2 days
find . -type f -ctime -48h
find . -type f -ctime -2
Or created in last 2 days
Or accessed in last 2 days
To find and rename (imperfect) all files and dirs that have a comma in the
name (dry-run):
find . -name '*,*' | while read f; do echo mv "$f" "${f//,/}"; done
To find all broken links. Note -L returns a file unless it is a broken link
find -L /usr/ports/packages -type l
To find files that are newer than a file
find <path> -newer <target-file>