1

私のプロジェクト構造は次のとおりです。

-sprint41
 -file1
 -file2
-sprint40
 -file1
 -file2
  • sprint41 フォルダー内のすべてのファイル (+ sprint41) の日付が 20130807 に変更されています
  • sprint40 フォルダー内のすべてのファイル (+ sprint40) の日付が 20130610 に変更されています

20130715 以降のすべてのファイル (+ フォルダー) を含むアーカイブを作成したいです。私のコマンドは次のとおりです。

tar -cf test.tar --after-date 20130715 *

このコマンドの後、test.tar には以下が含まれます。

-sprint41
 -file1
 -file2
-sprint40

変更日が 20130715 より前であっても、sprint40 フォルダーを保持しています

私は次のことを期待しています:

-sprint41
 -file1
 -file2

手がかりはありますか?

どうもありがとう

4

1 に答える 1

1

ええ、問題は、ディレクトリが空であっても tar にディレクトリが含まれることです。ディレクトリではなく、ファイルの --newer オプションのみを実際にチェックしています。小さなスクリプトを作成するか、find を -cnewer と共に使用して、出力を tar にパイプする必要があります (tar コマンドで --no-recursion を使用)。

必要なタイムスタンプでファイルを作成します

 touch -t 201307150000 timefile.txt

次に、次のようなもの:

find . -cnewer timefile.txt -print0 | xargs -0 tar --no-recursion -cf test.tar
于 2013-08-07T16:14:40.547 に答える