0

ファイルの完全なタイムスタンプを取得するには、次のようにします。

$ ls -lT

ただし、次のことを試してみると、次のようになります。

find . -ls -lT

find: -lt: unknown primary or operator(作品を使って)もらえますfind . -ls

find+ls -lTコマンドを使用する正しい方法は何でしょうか?

4

2 に答える 2

4

find "-ls" オプションは ls を実行しておらず、すべての引数を受け入れません。とはいえ、なぜ -T 引数が必要なのかわかりません。これは、調べなければならなかったタブ ストップに関係するあいまいなものです。しかし、大まかに言うと、find で見つかった一連のファイルに対してコマンド (この場合は "ls -lT") を実行したいだけです。したがって、次のいずれかが機能するはずです:find . -type f | xargs -n1 ls -lTまたはfind . -type f -exec ls -lT {} ';'またはfor i in $(find . -type f); do ls -lT $i; done.

または、複数のコマンド ライン引数を取る ls の特殊なケースでは、単にfind . -type f | xargs ls -lT

于 2013-01-29T20:10:41.800 に答える
3

の出力を解析している場合はls、間違っています。人間が読める形式の出力を解析するよりも、ファイルシステムとやり取りするためのより良い方法が常にあります。

「ファイルの完全なタイムスタンプ」の意味がわかりませんが、たとえば最終変更時刻が必要な場合は、stat.

stat --printf='%x' foo 
2013-01-29 13:33:32.000000000 -0600

を実行man statして、引数の他のすべての書式設定オプションを確認し--printfます。

于 2013-01-29T21:43:06.100 に答える