我们有打印所有坏 wsp 文件的脚本
./print_bad_wsp_files.sh
./aaaa/rrr/aaaa/fff/ooo/min.wsp
./aaaa/rrr/aaaa/fff/ooo/p50.wsp
./aaaa/rrr/aaaa/fff/ooo/min.wsp
./aaaa/rrr/aaaa/fff/ooo/p50.wsp
# ls -ltr
drwxr-xr-x 5 root root 36 Aug 14 14:58 aaaa
是否可以通过管道传输脚本以便我获得 ls -ltr 结果?每个文件的?
我到现在为止都是这么做的
./print_bad_wsp_files.sh | ls -ltr
但它只给出
drwxr-xr-x 5 root root 36 Aug 14 14:58 aaaa
而预期结果应该是
-rw-r--r-- 1 graphite mo 17308 Oct 11 2017 ./aaaa/rrr/aaaa/fff/ooo/min.wsp
-rw-r--r-- 1 graphite mo 13508 Oct 11 2017 ./aaaa/rrr/aaaa/fff/ooo/p50.wsp
-rw-r--r-- 1 graphite mo 27208 Oct 11 2017 ./aaaa/rrr/aaaa/fff/ooo/min.wsp
-rw-r--r-- 1 graphite mo 19208 Oct 11 2017 ./aaaa/rrr/aaaa/fff/ooo/p50.wsp
答案1
您在这里可能需要的是xargs
:
./print_bad_wsp_files.sh | xargs ls -ltr
xargs 将从脚本中读取输出并执行ls -ltr
所有输出(可能会分组,每次调用时可以容纳尽可能多的内容ls
)。
请注意,如果多次调用ls
,每个调用ls
都会分别对自己的文件列表进行排序(按反向时间)。