Article Index

This is all you need.

find . -name "foo*"

find needs a starting point, and the . (dot) points to the current directory.

Condition flow

\! -name "*.c"
\( x -or y \)

Actions

-exec rm {} \;
-print
-delete

Examples

find . -name '*.jpg'
find . -name '*.jpg' -exec rm {} \;
find . -newerBt "24 hours ago"

 

 

Part I – Basic Find Commands for Names

1. Find Files Using Name in Current Directory

 

Find all the files whose name is lost.txt in a current working directory.

 

# find . -name lost.txt

./lost.txt

 

2. Find Files Under Home Directory

 

Find all the files under /home directory with name lost.txt.

 

# find /home -name lost.txt

/home/lost.txt

 

3. Find Files Using Name and Ignoring Case

 

Find all the files whose name is lost.txt and contains both capital and small letters in /home directory.

 

# find /home -iname lost.txt

./lost.txt
./lost.txt

 

4. Find Directories Using Name

 

Find all directories whose name is lost in / directory.

 

# find / -type d -name lost

/lost

 

5. Find PHP Files Using Name

 

Find all php files whose name is lost.php in a current working directory.

 

# find . -type f -name lost.php

./lost.php

 

6. Find all PHP Files in Directory

 

Find all php files in a directory.

 

# find . -type f -name "*.php"

./lost.php
./login.php
./index.php

 


Part II – Find Files Based on their Permissions

 

7. Find Files With 777 Permissions

 

Find all the files whose permissions are 777.

 

# find . -type f -perm 0777 -print

 

8. Find Files Without 777 Permissions

 

Find all the files without permission 777.

 

# find / -type f ! -perm 777

 

9. Find SGID Files with 644 Permissions

 

Find all the SGID bit files whose permissions set to 644.

 

# find / -perm 2644

 

10. Find Sticky Bit Files with 551 Permissions

 

Find all the Sticky Bit set files whose permission are 551.

 

# find / -perm 1551

 

11. Find SUID Files

 

Find all SUID set files.

 

# find / -perm /u=s

 

12. Find SGID Files

 

Find all SGID set files.

 

# find / -perm /g+s

 

13. Find Read Only Files

 

Find all Read Only files.

 

# find / -perm /u=r

 

14. Find Executable Files

 

Find all Executable files.

 

# find / -perm /a=x

 

15. Find Files with 777 Permissions and Chmod to 644

 

Find all 777 permission files and use chmod command to set permissions to 644.

 

# find / -type f -perm 0777 -print -exec chmod 644 {} \;

 

16. Find Directories with 777 Permissions and Chmod to 755

 

Find all 777 permission directories and use chmod command to set permissions to 755.

 

# find / -type d -perm 777 -print -exec chmod 755 {} \;

 

17. Find and remove single File

 

To find a single file called lost.txt and remove it.

 

# find . -type f -name "lost.txt" -exec rm -f {} \;

 

18. Find and remove Multiple File

 

To find and remove multiple files such as .mp3 or .txt, then use.

 

# find . -type f -name "*.txt" -exec rm -f {} \;

OR

# find . -type f -name "*.mp3" -exec rm -f {} \;

 

19. Find all Empty Files

 

To file all empty files under certain path.

 

# find /tmp -type f -empty

 

20. Find all Empty Directories

 

To file all empty directories under certain path.

 

# find /tmp -type d -empty

 

21. File all Hidden Files

 

To find all hidden files, use below command.

 

# find /tmp -type f -name ".*"

 


Part III – Search Files Based On Owners and Groups

 

22. Find Single File Based on User

 

To find all or single file called lost.txt under / root directory of owner root.

 

# find / -user root -name lost.txt

 

23. Find all Files Based on User

 

To find all files that belongs to user lost under /home directory.

 

# find /home -user lost

 

24. Find all Files Based on Group

 

To find all files that belongs to group Developer under /home directory.

 

# find /home -group developer

 

25. Find Particular Files of User

 

To find all .txt files of user lost under /home directory.

 

# find /home -user lost -iname "*.txt"

 


Part IV – Find Files and Directories Based on Date and Time

 

26. Find Last 50 Days Modified Files

 

To find all the files which are modified 50 days back.

 

# find / -mtime 50

 

27. Find Last 50 Days Accessed Files

 

To find all the files which are accessed 50 days back.

 

# find / -atime 50

 

28. Find Last 50-100 Days Modified Files

 

To find all the files which are modified more than 50 days back and less than 100 days.

 

# find / -mtime +50 –mtime -100

 

29. Find Changed Files in Last 1 Hour

 

To find all the files which are changed in last 1 hour.

 

# find / -cmin -60

 

30. Find Modified Files in Last 1 Hour

 

To find all the files which are modified in last 1 hour.

 

# find / -mmin -60

 

31. Find Accessed Files in Last 1 Hour

 

To find all the files which are accessed in last 1 hour.

 

# find / -amin -60

 


Part V – Find Files and Directories Based on Size

 

32. Find 50MB Files

 

To find all 50MB files, use.

 

# find / -size 50M

 

33. Find Size between 50MB – 100MB

 

To find all the files which are greater than 50MB and less than 100MB.

 

# find / -size +50M -size -100M

 

34. Find and Delete 100MB Files

 

To find all 100MB files and delete them using one single command.

 

# find / -size +100M -exec rm -rf {} \;

 

35. Find Specific Files and Delete

 

Find all .mp3 files with more than 10MB and delete them using one single command.

 

# find / -type f -name *.mp3 -size +10M -exec rm {} \;