- 核心:find+简单命令:find找出想要的文件删除,看详细信息,显示文件内容,过滤。
find+ls
find+rm
find+cat/head/tail/
find+grep都类似
find / -maxdepth 2 -name "*.txt" | ls -lh```错误,无法使用
用管道 | 符查询信息不一致
方法1:find与其他命令配合必会的方法 find + 反引号+其他命令
[root@rxc ~]# ls -l `find / -maxdepth 2 -name "*.txt"`
方法2:find | xargs
我们发现find命令使用管道把数据传输给其他命令失败了!!!
find / -maxdepth 2 -name "*.txt" | ls -lh
ls 选项 参数
默认管道是无法把数据变化为命令的参数,导致传递失败,find命令找出的内容相当于被丢弃了,就相当于执行ls -lh命令,显示当前目录下内容并详细信息。
错误原因:
前面的命令通过管道传递给后面命令,传递的是字符串。
这个命令(ls)中传递文字符号就不行,传递参数
所以上面的命令相当于find白白浪费了,仅仅执行了下ls -lh而已
如何解决:
通过 |xargs 把字符串转换为参数
[root@rxc ~]# find / -maxdepth 2 -name "*.txt" |xargs ls -lh