年ごとにグループ化された古いファイルをtar-bzipに圧縮する方法

年ごとにグループ化された古いファイルをtar-bzipに圧縮する方法

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年にユーザーのタイムゾーンで作成されたファイルと年の変更時にタイムスタンプが真夜中のファイルが以前の年とグループ化されます。

findCentOSバージョンがサポートされていない以前のバージョンの場合は、代わりに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はより速く解凍し、よりよく圧縮しますが、圧縮にはより多くのメモリが必要です。)

関連情報