現在実行中のコマンドは次のとおりです。
tar --directory=/Users/joe/images -czvf images.tgz dir1/image1.jpg dir2/image2.jpg
ご覧のとおり、これは/Users/joe/images
ルートディレクトリを使用し、そのルートの下にある他のディレクトリのイメージを含みます。
ただし、tar内の共通の親項目の下にこれらの画像を含めることができるはずです。 tarファイルを開くと、次のディレクトリ構造が表示されます。
- 共通/image1.jpg
- 共通/image2.jpg
ファイルを配置する必要がある「親」ディレクトリを指定できるこのコマンドを実行するフラグまたは方法はありますか?
答え1
--directory
GNUまたは最新のBSD tarを使用することをお勧めします。
GNUの使用tar
:
tar --directory=/Users/joe/images --transform='s|[^/]*|common|' \
-czvf images.tgz dir1/image1.jpg dir2/image2.jpg
BSD tarの使用:
tar --directory=/Users/joe/images -s'|[^/]*|common|' \
-czvf images.tgz dir1/image1.jpg dir2/image2.jpg
アイデアは同じです。ブートパスコンポーネントをcommon
。
この交換は、その中にあるシンボリックリンクターゲットでも機能します(S
交換フラグを使用して無効にすることができます)。