アーカイブの作成時にフォルダが存在しない場合 tar を使用してフォルダを作成する方法

アーカイブの作成時にフォルダが存在しない場合 tar を使用してフォルダを作成する方法

アーカイブを作成するときにターゲットディレクトリが存在しない場合は、それ自体を作成するtarオプションがありますか?

だからフォルダはありますが、/1/2フォルダはありません/1/2/3/。これを達成するためにtarオプションを使用できますか?

スクリプトで必要なのにオプションがなければ、このようなことをする方が良いでしょうか?

mkdir /1/2/3/ &> /dev/null

フォルダが存在しない場合は作成されますが、すでに存在する場合はすべて空白のままになるため、エラーは発生しません。

今、この方法を使用すると、間違っている可能性があるものはありますか?

デフォルトでは、ユーザーを削除するスクリプトを作成していますが、スクリプトがユーザーを削除する前にユーザーのホームディレクトリを保持するオプションを選択できます。別のコンピュータでスクリプトを使用できるようにするには、/archives別のコンピュータに存在する場合と存在しない可能性があるフォルダを作成する必要があります。

tarは明らかにアーカイブに指定したパスを再帰的に生成できないため(たとえば、存在しない場合は作成すると/archives/users生成できません)。tar -czf /archives/users/user1.tgz /home/user1//archives

私の解決策について質問があります。書き込みmkdir -p /archives/users/ &> /dev/null。これは問題になりますか?このスクリプトはユーザー削除スクリプトなので、sudo でのみ実行できます。

ベストアンサー1

Tarは実際に存在するデータのみを結合できます。

ディレクトリが存在するかどうかを事前に確認する方がスムーズな方法だと思います。アプローチの問題は、ディレクトリを作成できない場合はエラーメッセージが表示されないことです。

これは例ですテスト:

test ! -d /1/2/3 && mkdir /1/2/3

おすすめ記事