find
だから私はそれを使用して、月曜日に最後に変更された特定のディレクトリのすべての.htmlファイルのリストを返したいと思います。どうすればいいですか?
ベストアンサー1
onlyまたは同様のものを使用してこれを直接find
実行する良い方法はわかりませんが、次のfind
ことを使用できますgrep
。
find -printf '%Tw:%h/%f\0' | grep -z '^1:'
そのため、find
もちろん他のフラグを組み合わせることもできます。
find -name '*.html' -type f -printf '%Tw:%h/%f\0' | grep -z '^1:'
.html
で終わるファイルのみをインポートします。
説明する
これは私のテストディレクトリです。
$ ls -la
total 68
drwxr-xr-x 2 anthony anthony 4096 Mar 24 17:53 .
drwxrwxrwt 98 root root 61440 Mar 24 17:55 ..
-rw-r--r-- 1 anthony anthony 0 Mar 24 17:53 monday
-rw-r--r-- 1 anthony anthony 0 Mar 23 11:12 sunday
find
引数は-printf
フォーマット文字列を使用します。ここで、%Tは最後の修正時刻を表します。以下は、w
0(日曜日)から6(土曜日)までの曜日を示しています。a
(略語:Mon)または(すべて:Monday)を使用して名前を取得できますが、A
これはロケールによって異なります。:
リテラルを提供します:
。%h/%f
はパスとファイル名です。\0
nullは項目を区切ります(これと同じです-print0
)。
これは次の内容を印刷します1:./.<NULL>0:./sunday<NULL>1:./monday<NULL>
。読みやすくするために、NULLを改行文字に置き換えると、次のようになりますtr '\0' '\n'
。
1:./.
0:./sunday
1:./monday
次に、grep -z '^1:'
1:(月曜日)で始まる項目を見つけます。