※当サイトの記事には、広告・プロモーションが含まれます。

Linuxで容量の大きいサイズのファイル群の分割圧縮と展開(解凍)を試してみる

k-tai.watch.impress.co.jp

logmi.jp

⇧ 今や情報インフラ系は、電気・ガス・水道などの社会的インフラと同様、生活に必要不可欠な役割を担っていますからな。

elaws.e-gov.go.jp

⇧ 責務にある事柄を実現するために、

 私どもはたとえば光ファイバーの整備は、だいたい2003年くらいから準備して、投資家サイドからは「こんな過度な投資をしていっていいのか」ということも言われながら、民間会社の判断として光ファイバーの投資をして現在に至っている。

NTT島田社長「NTT法廃止、着地点が見出せないから政府がある」 - ケータイ Watch

 日本はそのなかで、電力会社さんの子会社の通信事業者さんと設備競争して、99.7%の普及水準まで持ってきたわけです。

NTT島田社長「NTT法廃止、着地点が見出せないから政府がある」 - ケータイ Watch

⇧ NTTが負担してきたという主張と、

25兆円もの費用をかけ、また電話加入権等の国民負担で構築されている、全国の「特別な資産」は光ファイバーケーブルだけではなく、スライドにある局舎からとう道、管路、電柱と、通信基盤をあまねく整備・維持できる唯一無二の存在です。

【全文1/4】NTT法廃止は、単なる「通信会社間のいざこざ」ではなく国民の生活を揺るがす KDDI、ソフトバンクら4者が反対表明「オープンな議論を」 - ログミーBiz

何度も何度もお話ししているように、NTTの「特別な資産」は、電話加入権や電電公債、電電公債の返済は当然ながら、国民の電話代の基本料金や利用料金から回収して返済してるわけですから、まさに国民が作った持ち物だと思います。

【全文1/4】NTT法廃止は、単なる「通信会社間のいざこざ」ではなく国民の生活を揺るがす KDDI、ソフトバンクら4者が反対表明「オープンな議論を」 - ログミーBiz

⇧ NTT以外の主張が、相容れない感じではあるけど、「特別な資産」を国民が負担してきたって説明は苦しい気がする、だって、何かしらの通信サービスの利用料金はNTT以外も回収してるし。

「特別な資産」を構築するのに、癒着があったとか、税金で賄われていたとかいう不正が行われていた明確な事実があるんだとするなら、問題にできる気はしますけど。

NTT法を廃止するなら、国民の不利益が生まれないように抑止する法案を作ってもらう感じになるんかね。日本には独占禁止法がありますけど、

www.itmedia.co.jp

⇧ 上記のような事態がまかり通らないようにはしてもらいたいですな。

2割増しとか、高利貸しを彷彿とさせてくれますな。

Linuxで容量の大きいサイズのファイル群の分割圧縮と展開(解凍)を試してみる

職場の方に教えてもらい、Linux環境で、tarコマンドで圧縮する際に、パイプでsplitコマンドを併用することで、サイズの大きいファイルを分割圧縮ができるという知見を得られましたので、備忘録として。

blog.putise.com

zenn.dev

⇧ 上記サイト様にありますように、Linuxでは、ディレクトリを含め全てはファイルという扱いになるっぽいので、

  1. ファイルやディレクトリが大量にあってサイズが大きい
  2. 1ファイルのサイズが大きい

が分割圧縮対象になるのかなと。

Linuxでは、ディレクトリを含め全てはファイルという扱いになるっぽい』ってところが重要で、複数のファイル・ディレクトリについて、分割圧縮の対象になるってことですな。

で、Linuxのsplitのマニュアルを確認すると、

man7.org

DESCRIPTION

       Output pieces of FILE to PREFIXaa, PREFIXab, ...; default size is
       1000 lines, and default PREFIX is 'x'.

       With no FILE, or when FILE is -, read standard input.

       Mandatory arguments to long options are mandatory for short
       options too.
       --filter=COMMAND
              write to shell COMMAND; file name is $FILE

https://man7.org/linux/man-pages/man1/split.1.html

⇧ splitのオプションで「--filter」というものがあり、自由にコマンドを指定できるっぽい。

linuxcommand.net

⇧ 上記サイト様によりますと、splitで分割したファイルに対して、「--filter」オプションで「gzip」コマンドで圧縮しておられますと。

そもそも、何故、分割圧縮が必要かと言うと、圧縮対象のファイルサイズが大き過ぎると単純に圧縮しただけでは圧縮後のファイルサイズが大き過ぎるままとなる場合があり、いろいろ不具合の原因となり得るということですかね。

Windows Serverだと、

learn.microsoft.com

  • ファイルをコピーして貼り付ける

    コピーと貼り付け機能は、次のシナリオで使用できます。

    • リモート セッションとローカル コンピューターの間でファイルをコピーして貼り付けます。
    • ローカル コンピューターとリモート セッションの間でファイルをコピーして貼り付けます。

    ただし、2 GB 未満のファイルに限定されます。

https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/remote/copying-2-gb-file-by-clipboard-redirection-fails

リモートデスクトップ接続でのファイルのコピーで2GB以上のファイルサイズをサポートしていないって話っぽいのだけど、Windows 10とかにも当てはまるかは分からないですが、ファイルサイズの制限は考慮しておいた方が無難ということなんですかね?

Windows 10 は、

learn.microsoft.com

NTFS は、最新バージョンの Windows および Windows Server のプライマリ ファイル システムであり、セキュリティ記述子、暗号化、ディスク クォータ、豊富なメタデータなどの機能の完全なセットを提供します。

https://learn.microsoft.com/ja-jp/windows-server/storage/file-server/ntfs-overview

NTFSに対応してるらしく、

www.buffalo.jp

⇧ ファイルの保存に際しては、容量制限が無いと。

まぁ、でも、Windows環境だとリモートデスクトップ接続経由でのファイルコピーは一度に2GBまでしかコピーできませんと。

おそらく、

itc-engineering-blog.netlify.app

⇧ 上記サイト様にありますように、

あたりは、Windows 10で標準搭載されてそうなので、CLI(Command Line Interface)であれば、ファイルサイズの制限とか気にしなくても良いのかもしれない。

Linuxで容量の大きいサイズのファイルの分割圧縮と展開(解凍)を試してみる

実際に、分割圧縮と、分割圧縮したものの展開(解凍)ができるか確認してみます。

検証の環境は、

⇧ 毎度おなじみ、「WSL 2(Windows Subsystem for Linux 2)」の「Ubuntu 22.04.2 LTS (GNU/Linux 5.15.133.1-microsoft-standard-WSL2 x86_64)」です。

圧縮対象のファイルサイズを確認し、

まずは、分割圧縮。圧縮対象の総サイズが、1GBほどしかないので、1ファイル200MB程を上限に圧縮してます。

cd work    
tar -cf - . | split -a 3 -d -b 200M --filter='gzip > $FILE.gz' - ../target.tar    

⇧ 分割圧縮できているようです。

では、分割圧縮したものを展開(解凍)できるか試してみます。

cd ../
mkdir -p tmp
cd tmp    
cat ../target.tar00* | tar xzvf -    

tmpディレクトリに展開(解凍)できてそうです。

実際に、どれぐらいのサイズで分割圧縮するべきなのかは分からないですが、1GBにするのが一般的なんかな?

毎度モヤモヤ感が半端ない...

今回はこのへんで。