検索結果のファイルをtarファイルにインポートできません

検索結果のファイルをtarファイルにインポートできません

以下は、見つかったファイルの結果を検索してダンプする find コマンドです。/tmp/findall.log

find /app/test -type d  \( -name logs -o -name 'logs*' -o -name 'tmp*' \) -prune -o -print | tee  /tmp/findall.log

次のように、検索結果でステージフォルダを表示できます。

grep stage /tmp/findall.log | more
/app/test/Server2/stage_02032020
/app/test/Server2/stage_02032020/Buyers
/app/test/Server2/stage_02032020/Buyers/BuyersQuote.xlsx
/app/test/Server2/stage_02032020/Buyers/xml

find次に、次のコマンドを使用して結果で見つかったファイルを圧縮することにしました。

find /app/test -type d  \( -name logs -o -name 'logs*' -o -name 'tmp*' \) -prune -o  -print0 | xargs -0 tar -cvf /app/test_Backup.tar

しかし、私のtarファイルには、以下の検索結果のようにステージフォルダがありません。

tar -tvf test_Backup.tar | grep stage
No results Found.

検索結果のファイルがtarファイルから欠落している理由をお勧めしますか?

ベストアンサー1

空の文字列などが渡されたことを「発見」することができます。 "--no-run-if-empty"を使用して問題を解決することができます。その後、tarを生成しないでください。

find /app/test -type d  \( -name logs -o -name 'logs*' -o -name 'tmp*' \) -prune -o  -print0 | xargs --no-run-if-empty -0 tar -cvf /app/test_Backup.tar

ちなみにあなたのコードは私のRaspberry Piで実行されます。 GNU bash、バージョン 4.4.19(1)-リリース(armv7hl-redhat-linux-gnu)

おすすめ記事