多くのファイルを含むディレクトリがあります。コマンドの出力はls
次のとおりです。
-rw-r--r-- 1 nobody nogroup 427494 May 26 13:59 14_20150526065238928590_102.txt
-rw-r--r-- 1 nobody nogroup 2113592 May 26 14:00 14_20150526065238928590_105.txt
-rw-r--r-- 1 nobody nogroup 429947 May 26 14:00 14_20150526065238928590_110.txt
-rw-r--r-- 1 nobody nogroup 453831 May 27 14:00 14_20150526065238928590_112.txt
-rw-r--r-- 1 nobody nogroup 551023 May 27 14:01 14_20150526065238928590_118.txt
-rw-r--r-- 1 nobody nogroup 60083 May 27 14:01 14_20150526065238928590_119.txt
-rw-r--r-- 1 nobody nogroup 632324 May 28 03:38 14_20150526065238928590_160.txt
-rw-r--r-- 1 nobody nogroup 735624 May 28 03:38 14_20150526065238928590_161.txt
-rw-r--r-- 1 nobody nogroup 2707507 May 28 03:40 14_20150526065238928590_162.txt
上記のリストから、入力日より前に生成されたファイル名を検索したいと思います。
例:私が入力した日付は20150528で、結果が欲しい:(2015年5月28日より前に作成)
14_20150526065238928590_102.txt
14_20150526065238928590_105.txt
14_20150526065238928590_110.txt
14_20150526065238928590_112.txt
14_20150526065238928590_118.txt
14_20150526065238928590_119.txt
この目標をどのように達成できますか?
答え1
現在のディレクトリと2015年5月28日より前に最後に変更されたサブディレクトリ内のすべてのファイルを見つけます。
find . ! -newermt 20150527
現在のディレクトリのファイルのみを希望する場合いいえサブディレクトリの場合は、以下を使用してください。
find . -maxdepth 1 ! -newermt 20150527
どのように動作しますか?
find
これは、ファイルの検索に最も便利なUnixコマンドの1つです。
.
これは
find
、現在のディレクトリから検索を開始することを意味します。必要なディレクトリに置き換えることができます。!
これは論理的ですが、そうではありません。次のテストを逆にします。
-newermt 20150527
2015-05-27以降に修正されたファイルを対象に行われたテストです。上記の理由から、
!
このテストは逆順でファイルを検索します。いいえ2015-05-27に更新されました。気づく」いいえ「2015年5月27日更新」とは、「2015年5月28日より前に作成されました」と同じ意味です。