php
特定の日付に変更されたディレクトリ内のすべてのファイルを見つけることはできますか?
私はそれを使用しています
find /var/www/html/dir/ -mtime -28 | grep '\.php'
過去28日間に変更されたファイルをインポートしますが、次の日に変更されたファイルのみが必要です。2011-02-08
答え1
最新バージョンfind
(GNU 4.4.0など)では、このオプションを使用できます-newermt
。たとえば、2011-02-08で修正されたすべてのファイルを見つけます。
$ find /var/www/html/dir/ -type f -name "*.php" -newermt 2011-02-08 ! -newermt 2011-02-09
また、findはoptionsでこれを行うことができるので、PHPファイルを見つけるためにgrepをパイプする必要はありません-name
。
より多くの提案については、このSOの回答をご覧ください。検索を使用して特定の日付で生成されたファイルを検索するにはどうすればよいですか?
答え2
面倒なことに、標準には直接的な方法はありませんfind
。find
最新バージョンの GNU システム (たとえば、組み込まれていない Linux、Cygwin) および一部の *BSD では-newermt
ファイル日付とスペル日付の比較などのオプション。
基準を使用すると、ファイルの日付を現在の日付()または固定ファイルと比較するfind
だけです。現在の日付は通常この場合役に立ちません(ほとんどのアプリケーションではカレンダーの日付が必要ですが、-mtime
コマンドが実行された時間からカウントダウンされます)。find
これにより、範囲を定義するために一時ファイルを作成する必要があります。
touch -t 201103070000 start.tmp
touch -t 201103080000 stop.tmp
find . -newer start.tmp \! -newer stop.tmp -print
rm start.tmp stop.tmp
答え3
あなたと一緒にzsh
使用することができます機能age
特定の日付に変更されたファイル名のみを印刷します。
自動的に年齢を読み込む 印刷 -rl -- *.php(.e:age2011/02/08:)
または再帰的に検索したい場合:
自動的に年齢を読み込む 印刷 -rl -- **/*.php(.e:age2011/02/08:)
答え4
ほとんどの場合、デフォルトのコマンドを使用します。
ls -l | grep 2017 | grep Apr\ 11
ls -l | grep 2017 | grep Apr\ 1\
注:2番目のコマンドの最後にスペースを追加してください。コマンドラインからインタラクティブに検索するときにファイルとディレクトリを混在させることに問題はありません。