tarコマンドを使用して、圧縮せずにファイルをグループ化するにはどうすればよいですか?


60

120,000以上のファイルの非常に大きなフォルダーがあります。そして、同じマシンの別の場所(同じパーティション)に移動する必要があります。

tarコマンドを使用mvして、それらを単一のユニットとしてグループ化し、最後の場所にそれらをグループ化します。

tarそれらをすべて一緒に実行し、何も圧縮しないようにするには、どのコマンドが必要ですか(最速の結果が必要です)。


1
なぜファイルをmv(1)だけでなくtarを使用するのですか?または、オリジナルを失いたくない場合はcp(1)を使用しますか?
フォンブランド

@vonbrandの場合は、ネットワーク上で1つの連続したファイルをrsyncする必要があります。120kの小さなファイルを再同期するよりもはるかに高速です。最高速度から最高速度までの一定のフルスピードの違い
mwm

回答:


85

tar デフォルトでは圧縮せず、圧縮オプションを追加しないでください:

tar cvf myfolder.tar myfolder

有用な情報が追加されるので、私はヘンネスのコメントを私の答えに含めています。

TAR(テープアーカイブ)はもともと、テープ上にアーカイブを作成するために使用されるUNIXプログラムです。すべてのデバイスはUNIXでファイルとして扱われるため、テープに書き込むのではなく、ファイルに書き込むのは簡単です。これは通常、-fフラグを使用して行われます。コマンドタールCVF myfolder.tarにMyFolder手段タール、Cの reate、V erbose F ILE filename_to_create what_to_tar。これにはどこにも圧縮はありません。多くの場合、圧縮プログラムを使用して圧縮され、拡張子が.Zになったtarアーカイブ(ファイルとして)(file.tar.Zなど)。後にこれはzフラグ付きでgtarに含まれました


これにより、tar内のすべてのサブフォルダーとファイルが再帰的に追加されますか?
sergserg

2
@Sergはい、そうです。
テルドン

1
ありがとう。私は通常、短い形式と長い形式の両方で答えようとします。短いものについては「はい/いいえ」(うまくいかない)、およびなぜ長い答えとしての理由についての説明のように。なぜ頻繁に将来に役立つかについての背景を持つこと。
ヘネス

@Sergは、マニュアルや指示が非常に優れているとは限らないため、すぐに読んですぐに物事を明確にする場合があります。そして、それが何をするかを知っているか、良いアイデアを持っているなら、マニュアルはあなたのためにそれを確認できます!ファイルの小さなサンプルセットでtarをテストするのは簡単です。使用方法の例があり、マニュアルの冒頭または末尾を作成する必要はありません。
barlop

最速の結果が必要な場合は、出力を黙らせるために「v」フラグを省略する必要があることに注意してください。私の場合、これにより、AWS t2.mediumインスタンスでコマンドを実行する際のコマンド時間が16秒から6秒に短縮されました。
デビッドバケウス

6

@terdonの答えは正しいです。

しかし、私は小さなミスをしましたtar cvf myfolder.tar.gz myfoldertar.gz圧縮されていない場合でも、同じパスのファイルに同じ終了名が必要でした。

したがって、.gz, .ztarしようとしているファイル名の最後に何かを置くと、tarアプリは圧縮を使用することを理解し、それに応じて適用します(gz = gzip)。

したがって、そのような拡張機能tar.gzを使用する場合は、フラグを使用してください--no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.