Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (4,014)  
HandBrake Japanese Language Version  (2,964)  
CrystalDiskInfo  (1,714)  
Boookends  (1,269)  
CrystalDiskMark  (874)  
Tera Term  (825)  
CotEditor  (626)  
FFFTP  (593)  
えこでこツール  (532)  
10  ffdshow  (524)  
11  SMPlayer  (503)  
12  Cabos  (492)  
13  ギコナビ  (475)  
14  Rappelz Server  (471)  
15  MergeDoc  (457)  
More >>

最近ブックマークされた記事

あらゆるアーカイブを管理できるツール、atool

2008年02月13日 11:47 Ben-Martin(2008年2月5日(火)) 1 2 3
  atool を利用すると、さまざま方式で圧縮された、さまざまな形式のアーカイブを同じコマンドライン・インタフェースで扱うことができる。実体はPerlスクリプトのコレクションで、実際の処理はそれぞれに該当するネイティブのツールが行う。アーカイブを展開するコマンドやオプションはアーカイブの形式ごとに異なるが、atoolがそうした違いを吸収してくれるため、同じ方法でアーカイブを扱うことができるのだ。

 atoolにはaunpack、apack、als、acat、adiff、arepackというコマンドがあるが、いずれもatoolのメインPerlスクリプトにリンクしており、各コマンドが持つ機能に応じてアーカイブの展開や作成などを実行する。

 アーカイブを展開するaunpackは、ファイルが複数含まれている場合はファイルをサブディレクトリーに、1つだけの場合はカレント・ディレクトリーに置くが、-subdir(または-D)オプションが指定されていると、どちらの場合もサブディレクトリーに置く。この仕様はアーカイブを/tmpに展開するときに大いに役立つ。ファイルがサブディレクトリーに入っていないアーカイブをうっかり/tmpで展開して、ファイルをその中にばらまいてしまうおそれがないからだ。

 atoolで扱えるtarの圧縮方式には、gzip、bzip2、compress、lzop、7z、rar、lha、ace、arj、rpm、deb、jar、7zip、cpioがあり、さらに数種の圧縮方式を扱うことができる。ただし、それぞれの圧縮方式に応じたネイティブのツールがあればの話だ。一部のアーカイブ形式については内容の一覧と展開しかできないが、これはそのアーカイブを作るプログラムが入手できないためだ。たとえば、aceアーカイブの作成や変更はできない。

 それでは、いくつか使用例を見てみよう。まず、ごく簡単なファイルシステムを作り、そのtar.bz2ファイルを作成する方法を示す。もちろん、bzip2やgzipで圧縮したtarを作る方法など教わるまでもないだろう。この例を挙げたのは、これとまったく同じ構文で、どのような形式(サポートされていれば)のアーカイブでも作れることを示すためだ。

    $ cd /tmp
    $ mkdir atest
    $ cd atest
    $ mkdir testdir
    $ cd testdir
    $ date >df1.txt
    $ date >df2.txt
    $ mkdir subdir1
    $ date >subdir1/subfileb.txt
    $ cd /tmp/atest
    $ date >rawfile.txt
    $ apack testdir.tar.bz2 testdir
    testdir/
    testdir/df1.txt
    testdir/subdir1/
    testdir/subdir1/subfileb.txt
    testdir/df2.txt
    $ file testdir.tar.bz2
    testdir.tar.bz2: bzip2 compressed data, block size = 900k
    $ tar tjvf testdir.tar.bz2
    drwxrwxr-x ben/ben           0 2008-01-17 18:11 testdir/
    -rw-rw-r-- ben/ben          29 2008-01-17 18:11 testdir/df1.txt
    drwxrwxr-x ben/ben           0 2008-01-17 18:11 testdir/subdir1/
    -rw-rw-r-- ben/ben          29 2008-01-17 18:11 testdir/subdir1/subfileb.txt
    -rw-rw-r-- ben/ben          29 2008-01-17 18:11 testdir/df2.txt
    $ als testdir.tar.bz2
    drwxrwxr-x ben/ben           0 2008-01-17 18:11 testdir/
    -rw-rw-r-- ben/ben          29 2008-01-17 18:11 testdir/df1.txt
    drwxrwxr-x ben/ben           0 2008-01-17 18:11 testdir/subdir1/
    -rw-rw-r-- ben/ben          29 2008-01-17 18:11 testdir/subdir1/subfileb.txt
    -rw-rw-r-- ben/ben          29 2008-01-17 18:11 testdir/df2.txt

    $ apack testdir.cpio.7z testdir
    7-Zip (A) 4.51 beta  Copyright (c) 1999-2007 Igor Pavlov  2007-07-25
    p7zip Version 4.51 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
    Scanning

    Creating archive testdir.cpio.7z

    Compressing  testdir/df1.txt
    Compressing  testdir/df2.txt
    Compressing  testdir/subdir1/subfileb.txt

    Everything is Ok

    $ als testdir.cpio.7z

    7-Zip (A) 4.51 beta  Copyright (c) 1999-2007 Igor Pavlov  2007-07-25
    p7zip Version 4.51 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

    Listing archive: testdir.cpio.7z

       Date      Time    Attr         Size   Compressed  Name
    ------------------- ----- ------------ ------------  ------------------------
    2008-01-17 18:11:04 ....A           29           42  testdir/df1.txt
    2008-01-17 18:11:06 ....A           29               testdir/df2.txt
    2008-01-17 18:11:16 ....A           29               testdir/subdir1/subfileb.txt
    2008-01-17 18:11:16 D....            0            0  testdir/subdir1
    2008-01-17 18:11:11 D....            0            0  testdir
    ------------------- ----- ------------ ------------  ------------------------
                                        87           42  3 files, 2 folders
最終更新:2009年06月18日 13:58