0

重複の可能性:
bash の最新の X ファイルを除くすべてを削除する

シーンは次のとおりです。

1 日 2 つの tar ファイルが 1 つのディレクトリに作成されますが、最新の 2 つのファイルだけが必要なので、残りのファイルを毎日自動的に削除するにはどうすればよいですか?

perl、python、ruby などの高級言語ではなく、純粋なシェル コマンドを使用してこのスクリプトを作成することはできますか?

この問題は FTP に少し似ています - 最新の 10 個のファイルのみを保持したい - LRU削除し、フォルダー内の最新の 3 つを除くすべてのファイルを削除する方法

しかし、tarファイルが破損しているかどうかもテストする必要があります

新しい tar ファイルが破損している場合、私はそれを保持せずに古いものを予約します。スクリプトはどのようにする必要がありますか?

4

1 に答える 1

0

明らかに、これは 2 パス アプローチを使用して解決できます。

  1. 破損した tar ファイルを検出して削除します。
  2. 参照されている質問で説明されているように、最新の N 個のファイルを除くすべてを削除します。

最初のパスは、何かに沿って実行できます

for t in *.tar; do
    if program_that_checks_tar_file_for_integrity $t; then
        : # OK
    else
        rm $t
    fi
done
于 2012-09-24T12:34:38.193 に答える