ファイルを抽出するためにディレクトリ構造の先頭をスキップするにはどうすればよいですか?

ファイルを抽出するためにディレクトリ構造の先頭をスキップするにはどうすればよいですか?

ファイルを保存するために絶対パスを使用してtarアーカイブを作成しました。

/home/mydir/dir1/dir2/dir3/file1.dat
/home/mydir/dir1/dir2/dir3/file2.dat
/home/mydir/dir1/dir2/dir3/file3.dat

パスの先頭をスキップしてこのアーカイブを解凍したいと思います/home/mydir/dir1。私のファイルは、次の構造のすべてのディレクトリに復元する必要があります。

dir2/dir3/file1.dat
dir2/dir3/file2.dat
dir2/dir3/file3.dat

tarコマンドまたは他の手段を使用してこれをどのように実行できますか?

ベストアンサー1

GNU tarを使用している場合は、抽出時に一部の先行パスメンバーを選択的に削除できます。

 `--strip-components=number'

    Strip given number of leading components from file names before extraction.

For example, suppose you have archived whole `/usr' hierarchy to a
tar archive named `usr.tar'. Among other files, this archive
contains `usr/include/stdlib.h', which you wish to extract to the
current working directory. To do so, you type:

$ tar -xf usr.tar --strip=2 usr/include/stdlib.h

(からGNU tar ドキュメント.)

あなたの場合は--strip=3申請する必要があります。

おすすめ記事