0

ユーザーのホーム ディレクトリの .tar バックアップの束を新しいサーバーにコピーしていますが、tarball は古いサーバーから新しいサーバーに既にコピーされています。

例えば;

[root@example.com /home]# ls /home |grep tar
returns:
user1.tar
user2.tar
user3.tar
[etc]

しかし、少し厄介なことに、tarball は元のサーバーのルート ディレクトリから作成されたので、デフォルトの抽出ではデフォルト パスに「ホーム」が含まれています。

[root@example.com /home]# tar -xvf user1.tar 

コマンドを実行した場所に相対的な新しいホームディレクトリに抽出し、抽出したファイルをパスに配置します

/home/home/user1

必要なものに到達したと私が信じている最も近いもの(いくつかの異なるバリエーションがあります)。

[root@example.com /]# ls /home |grep tar |tar -xvf -

戻り値;

tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

今では、さまざまな部分ごとに多くの回避策があることに気付きましたが、成長して友達のような超クールなシステム管理者になるのであれば、おそらくこのような超クールなトリックを知っておく必要があります.

ありがとう!

4

1 に答える 1

1

tarファイル名のリストではなく、stdin にある tar ファイルを想定しています。

各ファイルを個別に処理します。

ls *.tar | xargs -n 1 tar xvf

また

for file in *.tar; do tar xvf $file; done
于 2013-09-14T20:14:54.653 に答える