GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでSplitコマンドを使用して大きなアーカイブファイルを複数の小さなファイルに分割する方法

アーカイブの作成の背後にある主な理由の1つは、処理と転送の容易さですが、圧縮ファイル自体が非常に大きいため、特にネットワーク速度が遅い場合に、ネットワーク経由で転送するのは悪夢になることがあります。

では、このような場合はどうすればよいのでしょうか。この問題の解決策はありますか?はい。1つの解決策は、圧縮ファイルを小さなビットに分割することです。これにより、ネットワーク経由で簡単に転送できます。目的地で、それらに参加して元のアーカイブを取得できます。

ソリューションが面白く聞こえ、Linuxでこれを行う方法を正確に理解したい場合は、このチュートリアルですべての重要な詳細について段階的に説明することを知っていただければ幸いです。

先に進む前に、この記事に記載されているすべての手順とコマンドがUbuntu14.04でテストされていることに注意してください。

大きなアーカイブを分割する方法

コマンドラインユーティリティがあります-Splitと呼ばれます -これは、ファイルを細かく分割するのに役立ちます。ほとんどのLinuxディストリビューションにそのままインストールされるため、ダウンロードしてインストールするために追加の手順を実行する必要はありません。このコマンドの構文は次のとおりです。

split [OPTION]... [INPUT [PREFIX]]

ここで、INPUTは、より小さなビットに分割する必要のあるファイルの名前を表し、PREFIXは、出力ファイルの名前の前に付ける必要のあるテキストです。この場合、オプションは -bになります。 出力ファイルのサイズを指定できるようにします。

例を通してSplitの使用法を理解するには、最初に分割する圧縮ファイルを用意する必要があります。たとえば、私の場合、次の60MBの.zipファイルがありました。

実行中のSplitコマンドは次のとおりです。

ご覧のとおり、-bオプションを使用して、Splitコマンドに大きな.zipファイルをそれぞれ20 MBに分割し、圧縮ファイルの完全な名前とプレフィックステキストを提供するように依頼しました。

分割コマンドが実際に要求されたとおりに実行されたことを確認した方法は次のとおりです。

上記のスクリーンショットの出力から明らかなように、私が提供したプレフィックスを含み、それぞれ20MBの重さの名前を持つ3つのファイルが出力で生成されました。

もちろん、.zipファイルのほかに、前述の方法を使用して、他の種類の圧縮ファイルを分割することもできます。たとえば、前に説明したのと同じコマンドを使用して.tar.xzファイルを分割する方法は次のとおりです。

これまでに理解していたように、ファイルをMB単位でサイズ設定する複数のチャンクに分割する場合は、 Mという文字を使用する必要があります。 コマンドラインで指定した数値を使用します。また、先ほど説明した場合のように、ファイルのサイズをKB単位にする場合は、 Kという文字を使用する必要があります。 。

これまで、 -bのみを使用してきました Splitコマンドによって提供されるオプション。これは、必要な処理を実行するためです。コマンドラインでこのオプションに続くサイズに基づいて入力ファイルを分割するようにコマンドに指示します。ただし、ケースと要件によっては、Splitコマンドが提供する他のオプションのいくつかを使用することをお勧めします。

以下は、オプションのリストとその機能の簡単な説明です。

  • -a -suffix-length =N :長さNのサフィックスを生成します(デフォルトは2)
  • -additional-suffix =SUFFIX :ファイル名に追加のSUFFIXを追加します。
  • -b -bytes =SIZE :出力ファイルごとにSIZEバイトを配置
  • -C -line-bytes =SIZE :出力ファイルごとに最大SIZEバイトの行を配置します
  • -d -numeric-suffixes [=FROM] :アルファベットの代わりに数字のサフィックスを使用します。 FROMは開始値を変更します(デフォルトは0)。
  • -e -elide-empty-files :「-n」を使用して空の出力ファイルを生成しないでください
  • -filter =COMMAND :シェルコマンドへの書き込み;ファイル名は$FILE
  • -l <​​/ strong> 、-lines =NUM​​BER :出力ファイルごとにNUMBER行を配置
  • -n -number =CHUNKS :CHUNKS出力ファイルを生成します。
  • -u -バッファなし :'-n r/...'を使用して入力を出力にすぐにコピーします

これまで、大きなアーカイブを複数の小さな部分に分割する方法についてのみ説明してきました。言うまでもなく、元の圧縮ファイルを取得するためにそれらを結合する方法も理解するまで、それは役に立ちません。だから、これがあなたがそれをすることができる方法です:

古き良きCatコマンドはこのタスクを処理できるため、小さなチャンクを結合するための特別なコマンドラインユーティリティはありません。たとえば、 Kaku-linux32.zipを取得した方法は次のとおりです。 Catコマンドによるファイル:

取得したアーカイブを抽出して元のアーカイブと比較し、何も変更されていないことを相互検証できます。

結論

Linuxユーザーであり、日常業務で大きな圧縮ファイルを操作し、ネットワークを介して他のユーザーと共有する場合は、場合によってはアーカイブを分割することをお勧めします。もちろん、このチュートリアルで説明されている解決策だけが利用できるわけではありませんが、それは確かに最も簡単で労力のかからない解決策の1つです。

別のアプローチを使用して大きなアーカイブを分割してから結合し直し、ソリューションを他のユーザーと共有したい場合は、以下のコメントで共有できます。


Linux
  1. 行に基づいて単一のファイルを複数のファイルに分割する方法

  2. Sort コマンドを使用して Linux でファイルをソートする方法

  3. Linux で「split」コマンドを使用して iso またはファイルを分割する方法

  1. 「dd」コマンドを使用して Linux でスパース ファイルを作成する方法

  2. bzip2 コマンドを使用して Linux で .bz2 ファイルを圧縮および解凍する方法

  3. 1 つのテキスト ファイルを複数の *.txt ファイルに分割する方法は?

  1. 大きな「tar」アーカイブを特定のサイズの複数のファイルに分割する方法

  2. diffコマンドを使用してLinuxでファイルを行ごとに比較する方法

  3. Linuxでコマンドラインからファイルを分割して結合する方法