[英]Find + ls -lT in compound command
要獲取文件的完整時間戳,我可以這樣做:
$ ls -lT
但是,當我嘗試以下操作時:
find . -ls -lT
我得到一個find: -lt: unknown primary or operator
(使用find . -ls
可以工作)。
使用find
+ ls -lT
命令的正確方法是什么?
find“ -ls”選項未運行ls並且不接受其所有參數。 就是說,我不知道您為什么要使用-T參數,這是一個晦澀的事情,涉及到制表位,我必須查找它。 但是從廣義上講,您只想對通過find找到的一堆文件運行命令(在這種情況下為“ ls -lT”)。 因此,以下任何一項都可以工作: find . -type f | xargs -n1 ls -lT
find . -type f | xargs -n1 ls -lT
find . -type f | xargs -n1 ls -lT
或find . -type f -exec ls -lT {} ';'
find . -type f -exec ls -lT {} ';'
或者for i in $(find . -type f); do ls -lT $i; done
for i in $(find . -type f); do ls -lT $i; done
for i in $(find . -type f); do ls -lT $i; done
。
或者,對於ls需要多個命令行參數的特殊情況,只需find . -type f | xargs ls -lT
find . -type f | xargs ls -lT
如果要解析ls
的輸出,那是錯誤的。 與解析人類可讀輸出相比,總有一種更好的方法與文件系統接口。
我不確定“文件的完整時間戳”是什么意思,但是如果您想說最后的修改時間,請使用stat
。
stat --printf='%x' foo
2013-01-29 13:33:32.000000000 -0600
運行man stat
以查看--printf
參數中的所有其他格式設置選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.