ファイル名は保存するがファイルの内容は保存しない tar ファイルを作成する

ファイル名は保存するがファイルの内容は保存しない tar ファイルを作成する

基本的に、フォルダー構造の tar イメージを作成したいのですが、実際のファイルの内容は保存しません。そのため、ファイルを解凍すると、元のフォルダー、ファイル名、タイムスタンプなどを取得しますが、元のファイルの内容ではなく、すべて長さがゼロのファイルを取得します。

ここでの目的は、数ギガバイトの tar ファイルを作成せずに、巨大なフォルダー (サイズがギガバイト単位) のフォルダー構造をキャプチャすることです。

前もって感謝します。

答え1

もしあなたcp十分に強力、 あなたはこれを行うことができます:

cp -a --attributes-only olddir newdir

newdir(まだ)存在せず--attributes-only

ソース ファイルの指定された属性のみを宛先にコピーします。[…]

これによってデータがコピーされることはありません。 の通常のファイルのnewdirサイズは 0 になります。 すべての属性 (所有権など) を複製するには、root になる必要があるため、 が必要になる可能性がありますsudo cp …。 の代わりに、-aより具体的なオプションを使用して、本当に必要な属性のみを複製することができます。

とにかく、newdir空のファイルを含むディレクトリを作成した後、tarの代わりにこのディレクトリを作成しますolddir

答え2

star18 年間これをサポートしています.... 試してください:

star -c -dump -meta ... | star -tv

これにより、すべてのエントリが 'm'eta タイプのファイルとしてリストされます...

star -c -dump -meta ... | star -C todir -xmeta

すべてのファイルを 0 バイトのサイズのファイルに抽出します。

star -c -dump -meta ... | star -C todir -xmeta -force-hole

すべてのファイルを、データのない元のサイズのファイル (スパース ファイル) として抽出します。

starschilytools の一部です。

関連情報