ファイルの完全なタイムスタンプを取得するには、次のようにします。
$ 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 -exec ls -lT {} ';'
またはfor i in $(find . -type f); do ls -lT $i; done
.
または、複数のコマンド ライン引数を取る ls の特殊なケースでは、単にfind . -type f | xargs ls -lT
の出力を解析している場合はls
、間違っています。人間が読める形式の出力を解析するよりも、ファイルシステムとやり取りするためのより良い方法が常にあります。
「ファイルの完全なタイムスタンプ」の意味がわかりませんが、たとえば最終変更時刻が必要な場合は、stat
.
stat --printf='%x' foo
2013-01-29 13:33:32.000000000 -0600
を実行man stat
して、引数の他のすべての書式設定オプションを確認し--printf
ます。