特定の日付に変更されたすべてのファイルをインポートする

特定の日付に変更されたすべてのファイルをインポートする

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

面倒なことに、標準には直接的な方法はありませんfindfind最新バージョンの 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番目のコマンドの最後にスペースを追加してください。コマンドラインからインタラクティブに検索するときにファイルとディレクトリを混在させることに問題はありません。

関連情報