
Linux文件查找命令find,xargs详述【转】
发布日期:2025-04-09 12:36:25
浏览次数:7
分类:精选文章
本文共 2405 字,大约阅读时间需要 8 分钟。
Linux文件查找命令find与xargs详述
一、find命令格式与选项
find命令是Linux系统中常用的一款强大文件查找工具,其命令格式如下:
find pathname -options [ -print | -exec | -ok ... ]
find命令的参数说明:
- pathname:指定要查找的目录路径,支持使用
.
表示当前目录,/
表示系统根目录。 - -print:将匹配的文件输出到标准输出。
- -exec:执行指定的shell命令,格式为
command { } /;
,注意空格和分号的使用。 - -ok:与
-exec
类似,但更安全,执行前会提示用户确认。
常用选项:
- -name:按文件名查找文件,如
-name "*.txt"
匹配所有文本文件。 - -perm:按文件权限查找文件,格式为八进制表示,如
-perm 755
匹配权限为755的文件。 - -prune:忽略当前目录中的文件,仅在子目录中查找。
- -user:按文件属主查找文件,结合
-nouser
可查找无效属主文件。 - -group:按文件所属组查找文件,结合
-nogroup
可查找无效组文件。 - -mtime:按文件更改时间查找文件,支持
-5
(最近5天)或+5
(5天以前)。 - -size:按文件大小查找文件,格式为
-size Nc
或-size N
,c
表示以字节计。 - -type:按文件类型查找文件,如
-type d
匹配目录,-type f
匹配文件。 - -depth:限制查找深度,结合
-prune
可排除指定目录。 - -mount:忽略文件系统的挂载点,仅查找当前文件系统中的文件。
二、find命令的实际应用示例
1. 查找当前用户主目录下的所有文件:
$ find $HOME -print
2. 查找特定权限的文件并列出详细信息:
$ find . -perm 644 -exec ls -l { } /
3. 查找系统中所有长度为0的普通文件:
$ find / -type f -size 0 -exec ls -l { } /
4. 在/var/logs
目录中查找更改时间在7日以前的文件并删除:
$ find /var/logs -type f -mtime +7 -ok rm { } /
5. 查找属于root
组的文件:
$ find . -group root -exec ls -l { } /
6. 查找名为admin.log*
且更改时间在7日以内的文件并删除:
$ find . -name "admin.log*" -atime -7 -ok rm { } /
7. 查找当前文件系统中的所有目录并排序:
$ find . -type d | sort
8. 查找系统中所有的rmt磁带设备:
$ find /dev/rmt -print
三、xargs命令的使用
xargs命令是find命令与-exec
选项结合使用时的替代方案,主要用于处理find命令输出过长的问题。与-exec
相比,xargs命令更适合大文件量的处理。以下是xargs命令的常用示例:
1. 在当前目录下查找所有以.log
结尾的文件并列出详细信息:
$ find . -name "*.log" -print | xargs ls -l
2. 在根目录下查找核心文件并写入日志文件:
$ find / -name "core" -print | xargs echo "" > /tmp/core.log
3. 在当前目录下查找所有文件名以file*
结尾的文件并删除:
$ find . -name "file*" -print | xargs rm
4. 在当前目录下查找所有用户具有读、写和执行权限的文件并修改权限:
$ find . -perm -7 -print | xargs chmod o-w
5. 在当前目录下查找所有普通文件并搜索hostname
关键字:
$ find . -type f -print | xargs grep "hostname"
四、find命令的其他实用技巧
1. 忽略某个特定目录:
$ find /apps -path "/apps/bin" -prune -o -print
2. 避开多个文件夹:
$ find /usr/sam \[ -path /usr/sam/dir1 -o -path /usr/sam/file1 \] -prune -o -print
3. 查找无有效属主或所属组的文件:
$ find / -nouser -print$ find / -nogroup -print
4. 按更改时间或访问时间查找文件:
$ find / -mtime -5 -print$ find /var/adm -mtime +3 -print
5. 查找比某个文件新或旧的文件:
$ find -newer file1 ! file2$ find . -newer temp -print
6. 按文件类型查找目录或符号链接文件:
$ find /etc -type d -print$ find /etc -type l -print
7. 按文件大小查找文件:
$ find . -size +1000000c -print$ find /home/apache -size 100c -print$ find . -size +10 -print
8. 按深度限制查找文件:
$ find / -name "CON.FILE" -depth -print
9. 忽略文件系统的挂载点:
$ find . -mount -name "*.XC" -print
五、关于本文
本文是zhyfly兄贴在LinuxSir.Org的一个帖子而整理出来的。如果您对版权有疑问,请在本帖后面跟帖。谢谢!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月24日 21时00分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux查找Tomcat路径;ubuntu18.04查找Tomcat路径
2023-02-04
linux查找webshell
2023-02-04
Linux查看CPU信息
2023-02-04
Linux查看CPU和内存使用情况
2023-02-04
linux查看cpu的负载
2023-02-04
Linux查看GPU情况
2023-02-04
Linux查看mac地址
2023-02-04
linux查看redis安装目录
2023-02-04
Linux查看当前时间
2023-02-04
Linux查看所有用户用什么命令1
2023-02-04
linux查看文件大小
2023-02-04
Linux查看服务器端口打开情况
2023-02-04
linux查看用户登录信息2-who命令
2023-02-04
Linux查看目录命令
2023-02-04
Linux查看硬盘型号
2023-02-04
Linux查看磁盘空间的命令
2023-02-04
linux查看端口占用情况
2023-02-04
Linux查看系统中用户信息,Linux下用于查看系统当前登录用户信息的4种方法
2023-02-04
linux查看系统位数
2023-02-04
linux查看系统内存
2023-02-04