首页 » 网站推广 » phpexec无效技巧_Linux 管道xargsexec差异

phpexec无效技巧_Linux 管道xargsexec差异

duote123 2024-12-11 0

扫一扫用手机浏览

文章目录 [+]

又进行了如下考试测验:

find ./ -name \"大众.txt\公众 | xargs ls -l | awk -F \"大众 \"大众 '{ans+=}END{print ans}'

phpexec无效技巧_Linux 管道xargsexec差异

find ./ -name \公众.txt\"大众 -exec ls -l {} \;| awk -F \公众 \公众 '{ans+=$5}END{print ans}'

phpexec无效技巧_Linux 管道xargsexec差异
(图片来自网络侵删)

创造若.txt文件存在的情形下,两者实行结果相同,但如果.txt文件不存在,xargs ls -l返回的是当前目录列表,-exec ls -l {} \;没有任何返回。

还有一种利用命令更换的办法:

ls -l `find ./ -name \公众.txt\公众` | awk -F \"大众 \"大众 '{ans+=$5}END{print ans}'

实行结果与xargs ls -l相同。

问题来了:利用|管道、xargs、以及find中的-exec有啥差异?

一点知识

管道

将前一个命令的输出作为标准输入传给后面的命令,不会用到任何中间文件与缓冲区。

xargs

将前一个命令的输出作为命令行参数传给后面的命令。

由此可见,类似于ls这种只能读取命令行参数的命令,只能利用xargs来进行输出通报。

-exec

find命令中-exec参数将查询结果通过命令行参数通报给后面的命令。

-exec与xargs不同的是:-exec是将结果逐条通报给后面的命令,后面的命令逐条实行。
xargs是将结果作为一个列表全部通报给后面的命令,后面的命令一次性实行参数串,可以通过xargs -p ls -l来查看即将要实行的完全的命令。

Tips:

目前已知的只能读取命令行参数的命令有:ls、rm。

通过剖析-exec与xargs的不同,就会创造如果在find中利用-exec+ls -lrt的办法,列表并没有进行排序,若想要排序,可利用xargs+ls -lrt,不过要把稳-exec与xargs差异

find ./ -name \"大众log\"大众 -exec ls -lrt {} \; --rt无效

find ./ -name \"大众log\"大众 | xargs ls -lrt --rt有效

标签:

相关文章