簡體   English   中英

在復合命令中查找+ ls -lT

[英]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 -lTfind . -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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM