Linux find
find命令用来查找在所在目录相对路径下的文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法:
find path -option 文件名 [ 动作]
常见参数:
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。
动作:
-detele 删除文件
-exec command {} ; 执行命令,花括号代表当前文件
-ls 列出当前文件, ls dils 格式
-print 完整的文件名并添加一个回车换行符
-print 0 打印完整的文件名并不添加一个回车换行符
-printf format 打印格式
其他字符:
!取反
-or o 逻辑 或
-and 逻辑 和
实例:
将目前目录及其子目录下所有最近5天内更新过的文件列出 find . -ctime -5
将目前文件及子目录下名为1.py的文件列出来 find . -name 1.py
将当前目录下及子目录文件名后缀.py的文件全部列出 find . -name *.py
查找指定文件类型的文件名: find /data/dev -name app -type d
查找文件名并且文件类型删除: find /data/dev -name app -type d -delete
查找文件权限是664: # find . -perm 664
查找大于1024k的文件: # find . -size -1024k
查找3天内修改的文件: find . -ctime -3
只显示第一级目录: # find /etc -type d -maxdepth 1