Linux

如何在文件列表之後通過管道傳輸 ls -ltr 以擷取日期和時間

  • August 14, 2018

我們有列印所有壞 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

您可能需要的是xargs

./print_bad_wsp_files.sh | xargs ls -ltr

xargs 將讀取腳本的輸出並ls -ltr在所有這些輸出上執行(可能成束分組,每次呼叫都適合ls)。

請注意,如果有多個呼叫ls,每個呼叫ls都會分別對自己的文件列表(按反向時間)進行排序。

引用自:https://unix.stackexchange.com/questions/462553