@Steve Kehletの投稿にコメントを追加しますが、50人の担当者(RIP)が必要です。
何度もグーグル検索してこの投稿を見つけた人のために、時間範囲を指定した特定のファイルを見つけるだけでなく、相対パスやタールエラーを引き起こす空白を含めない方法を見つけました。(ありがとうございました。)
find . -name "*.pdf" -type f -mtime 0 -printf "%f\0" | tar -czvf /dir/zip.tar.gz --null -T -
.
相対ディレクトリ
-name "*.pdf"
PDF(または任意のファイルタイプ)を探す
-type f
検索するタイプはファイルです
-mtime 0
過去24時間に作成されたファイルを探す
-printf "%f\0"
通常の-print0
OR -printf "%f"
は私にはうまくいきませんでした。manページから:
この引用は、GNU lsと同じ方法で実行されます。これは、-lsおよび-flsで使用されるものと同じ引用メカニズムではありません。ファイル名には空白や改行文字を含めることができるため、findの出力に使用する形式を決定できる場合は、改行を使用するよりも、通常、 '\ 0'をターミネータとして使用することをお勧めします。
-czvf
アーカイブの作成、gzipによるアーカイブのフィルタリング、処理されたファイルの詳細なリスト、アーカイブ名
編集2019-08-14:追加したいのですが、tar自体を使用するだけで、コメント内で基本的に同じコマンドを使用することもできました:
tar -czvf /archiveDir/test.tar.gz --newer-mtime=0 --ignore-failed-read *.pdf
--ignore-failed-read
今日のために新しいPDFがない場合に備えて必要でした。
find ... | xargs ...
は、それぞれに-print0 / -0パラメータを使用することですfind -print0 ... | xargs -0 ...
。これにより、ファイル名がnull文字で区切られます。つまり、ファイル名にスペースや改行などの奇妙な要素を含めることができ、ファイル名は引き続き機能します。