如何在文件列表后通过管道 ls -ltr 以捕获日期和时间

如何在文件列表后通过管道 ls -ltr 以捕获日期和时间

我们有打印所有坏 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都会分别对自己的文件列表进行排序(按反向时间)。

相关内容