1年以内にすべてのファイルを一度にインポートしてアーカイブするために使用できるコマンドを知りたいです。私は2007年から現在までのファイルを含む72,000個のファイルを含むディレクトリで作業しています。年グループの古いファイルをtar-bzipに圧縮して管理しやすくしたいと思います。したがって、すべての文書は2007年1月1日から2007年12月31日までです。ご協力ありがとうございます!
答え1
あなたはそれを使用することができますfind
注文する文書を選択してください修正時間に基づいて。
cd /path/to/directory
find -type f -newermt 2007-01-01 ! -newermt 2008-01-01
これにより、2007年にユーザーのタイムゾーンで作成されたファイルと年の変更時にタイムスタンプが真夜中のファイルが以前の年とグループ化されます。
find
CentOSバージョンがサポートされていない以前のバージョンの場合は、代わりにFencepostファイルを-newermt
使用できます。-newer
touch -d 2007-01-01 /tmp/2007-01-01
touch -d 2008-01-01 /tmp/2008-01-01
find -type f -newer /tmp/2007-01-01 ! -newer /tmp/2008-01-01
ファイル名に改行文字が含まれていないと仮定すると、結果のリストを入力として渡すことができます。tar
オプションを使用します-T
(-T -
標準入力からファイル名を読むことを意味します)。
cd /path/to/directory
find -type f -newermt 2007-01-01 ! -newermt 2008-01-01 |
tar -cjf /elsewhere/2007.tar.bz2 -T -
(tar -cJf /elsewhere/2007.tar.xz
逆に、xzはより速く解凍し、よりよく圧縮しますが、圧縮にはより多くのメモリが必要です。)