Linux Find 命令总结

来源:互联网 发布:前台数据传到msql乱码 编辑:程序博客网 时间:2024/05/21 06:55

1、按文件名递归查询

find –name “filename”

2、按文件名递归查询,不区分大小写

find –iname “filename”

3、查找当前目录及深度为1的子目录里面文件

find –maxdepth 2 –name “filename”

4、在第二层子目录和第四层子目录之间查找文件

find –mindepth 3 –maxdepth 5 –name “filename”

5、查找相关文件,并执行相关命令

find –name “filename” –exec stat {} \;

6、反查找,查找名字不是filename的文件或目录

find –not –name “filename”

7、通过inode编号查找文件,每个文件都有一个独一无二的inode编号

ls –i1 filename

656193 -rw-r--r-- 1 root root      216 May 13 10:14 filename

find –inum 656193 –exec mv {} new-filename {} \;

8、特别注意,如果有一个文件为file?name,那如果执行rm file?name,会导致file1name file2name等文件被删除,解决办法是通过inode编号删除

9、通过文件权限查找文件,查找组具有读权限的文件

find –perm –g=r –type f –exec ls –l {} \;

-rw-r—r--

10、查找通组具有只读权限的文件

find –perm g=r –type f –exec ls –l {} \;

11、查找所有的空文件(大小为0字节的文件)

find –empty

12、列出当前目录下的非隐藏空文件

find –empty –not –name “.*”

13、查找socket类型文件

find  -type s

14、查找大于100M的文件

find –size +100M

15、查找100M大小的文件

find –size 100M

16、find设置别名

alias renamefind=”find . –iname a.out –exec rm {} \;”

17、时间类型查找

find –mmin –n 查找n分钟之内被修改过的文件

find –mtime –n 查找n天之内被修改过的文件

find –amin –n 查找n分钟之内被访问过的文件

find –atime –n 查找n天之内被访问过的文件

find –cmin –n 查找n分钟之内文件状态变化过的

find –ctime –n 查找n天之内文件状态变化过的

18、查找非隐藏文件

find . \( ! -regex ".*/\..*" \)

19、查找文件修改时间在某一文件修改后的文件

find –newer file #使用场景,新增用户之后跟踪系统的活动状态

20、查找文件访问时间在某一个文件的修改时间之后的文件

find –newer /etc/passwd

21、查找状态改变时间在某个文件修改时间之后的文件

find –cnewer file

22、在同一个命令中使用多个{}

find -name "*.html" -exec ./mv.sh '{}' \;

任何情况下你在find命令执行中想使用同一个文件名多次的话,先写一个脚本,然后在find中通过-exec执行这个脚本,把文件名参数传递进去就行

23、find执行多具命令

在find的man page页面中,下面是一次文件查找遍历中使用两条命令的语法举例,下面的find命令的例子,遍历文件系统一次,列出拥有setuid属性的文件和目录,写入/root/suid.txt文件, 如果文件大小超过100M,将其记录到/root/big.txt中

# find / \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \ \( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)

0 0
原创粉丝点击