私はコンピューター科学者であり、基本的なコマンドに精通したいのですが、UbuntuとLinux環境全体はかなり新しいです。
現時点では、.tarおよび.tar.gzファイルを使用していますが、それらの1つを作成するのに問題があります。
私は次のファイル構造を持っていると仮定しましょう:
./
|-> a
|-> Release
|-> [some files]
|-> b
|-> Release
|-> [some files]
次のコマンドを使用して、現在tarファイルを作成しています。
tar -cvf ../archive.tar a
tar -rvf ../archive.tar b
今、私のarchive.tarもフォーマットを持っています
archive.tar
|-> a
|-> Release
|-> [some files]
|-> b
|-> Release
|-> [some files]
次に、上記のファイル構造を前提として、次の3つのアーカイブ構造をどのように実現できますか?
共通ベースフォルダーを追加する
archive.tar
|-> baseFolder
|-> a
|-> Release
|-> [some files]
|-> b
|-> Release
|-> [some files]
フォルダーの名前を変更する
archive.tar
|-> aChangedFolderName
|-> Release
|-> [some files]
|-> bChangedFolderName
|-> Release
|-> [some files]
共通のベースフォルダーを追加し、フォルダーの名前を変更します
archive.tar
|-> baseFolder
|-> aChangedFolderName
|-> Release
|-> [some files]
|-> bChangedFolderName
|-> Release
|-> [some files]
私にとっては、複数のステップで達成できるかどうかは問題ではありません。少なくともできるといいのですが。そして:#1は私にとって最も重要です。
次のコマンドで1.を実行できます。
tar cvf archive.tar --transform 's,^,baseFolder/,' a b
アーカイブには以下が含まれます。
$ tar tvf archive.tar
drwxrwxr-x sylvain/sylvain 0 2015-03-18 12:47 baseFolder/a/
-rw-rw-r-- sylvain/sylvain 0 2015-03-18 12:47 baseFolder/a/foo
drwxrwxr-x sylvain/sylvain 0 2015-03-18 12:47 baseFolder/b/
-rw-rw-r-- sylvain/sylvain 0 2015-03-18 12:47 baseFolder/b/bar
2.の場合、複数の--transform
オプションでtar
を実行できます。
tar cvf archive.tar --transform 's,^a,changed_a,' --transform 's,^b,changed_b,' a b
アーカイブには以下が含まれます。
$ tar tvf archive.tar
drwxrwxr-x sylvain/sylvain 0 2015-03-18 12:47 changed_a/
-rw-rw-r-- sylvain/sylvain 0 2015-03-18 12:47 changed_a/foo
drwxrwxr-x sylvain/sylvain 0 2015-03-18 12:47 changed_b/
-rw-rw-r-- sylvain/sylvain 0 2015-03-18 12:47 changed_b/bar
3.では、次のように1.と2.を組み合わせることができます。
tar cvf archive.tar --transform 's,^a,changed_a,' --transform 's,^b,changed_b,' --transform 's,^,baseFolder/,' a b
アーカイブには以下が含まれます。
$ tar tvf archive.tar
drwxrwxr-x sylvain/sylvain 0 2015-03-18 12:47 baseFolder/changed_a/
-rw-rw-r-- sylvain/sylvain 0 2015-03-18 12:47 baseFolder/changed_a/foo
drwxrwxr-x sylvain/sylvain 0 2015-03-18 12:47 baseFolder/changed_b/
-rw-rw-r-- sylvain/sylvain 0 2015-03-18 12:47 baseFolder/changed_b/bar