タールで梱包

タールで梱包

ファイルをパッケージ化しようとしています。

file1
folder2/hello
folder2/world
file3

カスタムフォルダにカプセル化されるようにtarファイルに保存すると、次のようtar -tvf archive.tarになります。

mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3

現在、この問題を解決するために、私は:

  • file1作成しfolder2てアーカイブ(x)しますfile3
  • フォルダを作成しますmycustomfolder
  • アーカイブ(x)を次に抽出します。mycustomfolder
  • プロフィールを作成(y)mycustomfolder

私は彼らがこの仕事に向かって1つのステップまたはより良い方法になるとは思わないかもしれません。

答え1

アーカイブを自分のディレクトリに抽出するには(通常はこれを実行しないディレクトリは混乱する可能性があるため)、ディレクトリを作成してコンテンツツリーをそのディレクトリに移動/コピーします。 、2番目の例に示すように:

mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3

次にtar -cvf myarchive.tar mycustomfolder。抜粋、tar -xvf myarchive.tar

まず、ディレクトリを作成したくない場合は、ファイル名を変換し、ディレクトリプレフィックスを追加できます。

tar --xform="s%^%mycustomfolder/%" -cvf myarchive.tar file1 folder2 file3

構文を使用して変換(参照man tar) 。名前付きフォルダが作成されましたが(==奇妙なアクションIMO)(正確には)「無効な変換式」だったので、区切り文字を代わりにsed使用しました。%/s/^/mycustomerfolder\//mycustomfolder\s/^/mycustomfolder//

関連情報