Linux find命令是Linux系统中最重要和最方便的命令之一。 顾名思义,它可以根据您设置的任何条件和变量在Linux PC上找到文件。 您可以使用find命令按权限,用户,组,文件类型,日期,大小和其他可能的标准查找文件。
find命令默认在大多数Linux发行版上可用,因此您不必为其安装软件包。
在本教程中,我们将向你展示如何在命令行中使用搜索表达式的各种常见的组合来查找在Linux上的文件。
按名称查找当前目录中的文件
搜索文件的最明显方式是通过名称。按名称查找在当前目录中的文件,运行:
find . -name photo.png
如果你想找到同时包含大写和小写字母名称的文件,请运行:
sudo find / -name gzip -print
在特定的目录下查找文件
如果您想要找到像在特定目录下的文件,如“/home”,请运行:
find /home -name filename.txt
如果要在“/ home”目录下找到扩展名为“.txt”的文件,请运行:
find /home -name *.txt
要在多个目录(如“/ home”和“/ opt”)下查找名称为“test.txt”的文件,请运行:
find /home /opt -name test.txt
要在“/ home”目录中查找隐藏的文件,请运行:
find /home -name '.*'
要找到名为“test.txt”的单个文件并将其删除,请运行:
find /home -type f -name test.txt -exec rm -f {}
要查找“/ opt”目录下的所有空文件,请运行:
find /opt -type f -empty
使用名称查找目录
如果您想在“/ home”目录下找到名称为“testdir”的所有目录,请运行:
find /home -type d -name testdir
要将“/ home”下的所有空目录归档,请运行:
find /home -type d -empty
查找具有特定权限的文件
find命令可用于使用perm选项来查找具有特定权限的文件。
要在“/ home”目录中查找所有权限为“777”的文件,请运行:
find /home -type f -perm 0777 -print
要在没有权限 '777' 的情况下查找所有文件, 请运行:
find . -type f ! -perm 777
要查找所有只读文件,请运行:
find /home -perm /u=r
要查找所有可执行文件,请运行:
find /home -perm /a=x
要查找所有权限为“553”的粘性位集文件:
find /home -perm 1553
要查找所有SUID设置文件,请运行:
find /home -perm /u=s
要查找权限为“777”的所有文件并将其权限更改为“700”,请运行:
find /home -type f -perm 0777 -print -exec chmod 700 {} ;
根据日期和时间查找文件和目录
要查找“/ opt”下所有在20天前修改的文件,请运行:
find /opt -mtime 20
要查找二十天前访问的“/ opt”下的所有文件,请运行:
find /opt -atime 20
要查找“/ opt”下的所有文件,这些文件早于30天前修改并且在修改后不超过5天:
find /opt -mtime +30 -mtime -50
要查找在最近两个小时内更改的“/ opt”下的所有文件,请运行:
find /opt -cmin -120
根据大小查找文件和目录
要查找“/ home”目录下的所有10MB文件,请运行:
find /home -size 10M
要查找“/ home”目录下大于10MB且小于50MB的所有文件,请运行:
find /home -size +10M -size -50M
要查找“/ home”目录下所有大于10MB的“.mp4”文件并使用单个命令将其删除,请运行:
find /home -type f -name *.mp4 -size +10M -exec rm {} ;
结论
那就是 - 在Linux上查找你想要的任何文件的一整套清单。 它可能不像您的基本Windows搜索那么简单,但它更加详细和具体。 这里有没有我们错过的命令? 让我们在评论中知道!
更多阅读