here, img logo!
ファイルの圧縮と展開(UNIX編)
% ls (現directoryの一覧表示) image1.gif index.html media/ sample/ % ls sample ("sample"directoryの中の一覧表示) file1.txt smpl01/ smpl02/ smpl03/ % ls sample/smpl02 ("sample"の中の"smpl02"directoryの中の一覧表示) awk/ keijo.all kyouin sh/ tex/
% cp image1.gif img2.gif (元image1.gifを先img2.gifに複写、 複写先のファイルががない場合は新たに生成する)
% rm -i img2.gif ("img2.gif"を削除、"-i" を付けるとyes/noを確認してから実行) rm: remove img2.gif? y ("y"を入力なら削除、"n"なら削除中止)
% mv hobby.html hobby1.htm (元のファイル名hobby.htmlを先のhobby1.htmに変更) % mv hobby1.htm media (mediaというdirectoryがあるならhobby1.htmをmediaの 中に移動する、なければhobby1.htmをmediaというファイル名に変更)
% lpr 印刷したいファイル名
ディレクトリの例
"public" directoryにある"sample" directoryの構成は以下のように1つのfile"file1.txt"と3つの sub-directory (smpl01, smpl02, smpl03) から成っている。"smple02" directoryもその中に幾つかのdirectoryを持っている。
public/ | index.html, image1.gif, hobby.html, ... | |||
media/ | paint1.gif, paint.html, excel1.gif, logo.jpg, photo.html... | |||
sample/ | file1.txt | |||
smpl01/ | music, sort.data | |||
smpl02/ | awk/ | form.a, kamoku.dat, programs | ||
keijo.all, kyouin | ||||
sh | phone.d, scripts, sed.s | |||
tex/ | sample1.tex, semi1.tex | |||
smpl03/ | awks, c-shell, sh.word |
ファイルをこのようにグループ化したり階層化するには、cp (copy), mv (move), rm (remove) と共に次のような command / tool を組合わせて利用する。
% cd (current directoryをhome directoryに変更) % cd public (上の指令の直後に行なうと、current directoryを "public" に変更) % cd ~/public (同上、ただしどこで作業していてもユーザの"public" に戻る) % cd .. (直前のdirectoryの1つ上のdirectoryにcurrent directoryを変更)directoryを表す記号
% cd ~/public (current directoryをpublic変更、ユーザ名を i98001 とする) % pwd (現在ディレクトリを絶対経路名で表示する) /home4/i98001/public
% cd ~/public/sample % mkdir smpl04 ("sample" の中に "smpl04" directoryを作る)
% ls file1.txt smpl01/ smpl02/ smpl03/ smpl04/ % rmdir smpl04 ("smpl04" directoryを削除) % ls ("smpl04" directoryが削除されたことを確認) file1.txt smpl01/ smpl02/ smpl03/
% du ~ (自分の全使用量を表示する) 7 ./Mail/mbox#1 33 ./Mail/mbox#2 45 ./Mail 5 ./public/sample 15 ./public/image 53 ./public 125 (全使用量は 125 block, 1block = 1024 byte) % ls -s Mail ("Mail"の使用量を表示する、結果は横に並べて表示する) total 45 10 mail/ 7 mbox#1/ 25 mbox#2/ 1 mlfldrs1~old 1 mlfldrs1 % du public ("public"の使用量を表示する、結果は縦に表示する) ... ...
% cd ~/public/sample/smpl02/awk % ls -l kamoku.dat ("ls" に "-l" を付けるとファイルのサイズを表示する) -rw-r--r-- 1 i98001 14879 Nov 22 16:44 kamoku.dat "kamoku.dat"のサイズは 14879 byte である。 % gzip kamoku.dat % ls (圧縮されたファイル名には ".gz" が付く) form.a kamoku.dat.gz programs % ls -l kamoku.* ("*" は任意の文字列にmatchする) -rw-r--r-- 1 i98001 5540 Nov 22 16:44 kamoku.dat.gz "kamoku.dat"のサイズは 5540 byteに圧縮された。
% ls (圧縮されたファイル名があるか?) form.a kamoku.dat.gz programs % gunzip kamoku.dat % ls -l kamoku* -rw-r--r-- 1 i98001 14879 Nov 22 16:44 kamoku.dat 展開された"kamoku.dat"のサイズは元の14879 byte に戻った。
% tar cvf sample.tar sample ... ... % ls -l sample*
% tar tvf sample.tar ... ... % tar xvf sample.tar ... ... % ls -l sample*
(current directoryを自分の"public"に変えて、サンプルを current "." へ複写)
% cd ~/public % ls (またはpwdで作業場所を確認) % cp ~test01/doc/sample.tar.gz . (注意! "." へ複写) % ls -l sample* (copyされた"sample.tar.gz"のサイズなどを確認) -rw-r--r-- 1 i98001 24908 Nov 22 17:51 sample.tar.gz
(圧縮された書庫ファイルの展開)
% gunzip sample.tar % ls -l sample.tar* (書庫ファイル"sample.tar"の展開を確認) -rw-r--r-- 1 i98001 122880 Nov 22 17:51 sample.tar
(書庫ファイルからの復元)
% tar tvf sample.tar (書庫ファイルが持つ元のファイル情報を表示するのみ) rwxr-xr-x8889/1000 0 Nov 22 16:59 1999 sample/ rwxr-xr-x8889/1000 0 Nov 22 16:55 1999 sample/smpl01/ rw-r--r--8889/1000 817 Nov 22 16:54 1999 sample/smpl01/music .......... % tar xvf sample.tar (実際に書庫ファイルから元のファイル群を復元) x sample/smpl01/music, 817 bytes, 2 tape blocks x sample/smpl01/sort.data, 2140 bytes, 5 tape blocks x sample/smpl02/sh/phone.d, 157 bytes, 1 tape blocks (復元の状況が報告される) .......... % ls sample (復元された"sample"のdirectory構成などを表示) file1.txt smpl01/ smpl02/ smpl03/ % ls -l sample* (元のファイル群を確認してみる) -rw-r--r-- 1 i98001 122880 Nov 22 19:51 sample.tar sample: (構成やサイズや日時は元のファイル情報) total 25 -rw-r--r-- 1 i98001 157 Nov 22 16:58 file1.txt drwxr-xr-x 2 i98001 8192 Nov 22 16:55 smpl01/ drwxr-xr-x 5 i98001 8192 Nov 22 16:49 smpl02/ drwxr-xr-x 2 i98001 8192 Nov 22 16:53 smpl03/ % du sample (サイズの確認、単位は 1block=1Kbyte=1024 byte) 12 sample/smpl01 39 sample/smpl02/sh 17 sample/smpl02/tex 38 sample/smpl02/awk 128 sample/smpl02 11 sample/smpl03 160 sample (全体で 160 block)(書庫ファイルの作成)
% tar cvf sample.tar sample (書庫ファイル"sample.tar"の作成) a sample/smpl01/music 2 blocks a sample/smpl01/sort.data 5 blocks a sample/smpl02/sh/phone.d 1 blocks (書庫化の報告) ........... a sample/smpl03/sh.word 2 blocks (1blockは1024byteのサイズ) a sample/smpl03/awks 2 blocks a sample/file1.txt 1 blocks % ls -l sample* (書庫ファイルの確認、書庫ファイルのサイズは約122K) drwxr-xr-x 5 i98001 8192 Nov 22 16:58 sample/ -rw-r--r-- 1 i98001 122880 Nov 22 17:11 sample.tar(書庫ファイルの圧縮)
% gzip sample.tar (書庫ファイル"sample.tar"の圧縮) % ls -l sample.tar* (書庫ファイル"sample.tar"の圧縮を確認) -rw-r--r-- 1 i98001 24908 Nov 22 17:15 sample.tar.gz
% ls ... sample/ sample.tar.gz ...(圧縮された書庫ファイルが保管されているので元のsampleの内容を一括削除する)
% rm -r sample ("rm"は"rm -i"の別名になっているので rm: remove file1.txt? y 削除の確認が必要) rm: remove smpl01/music? y rm: ... ... % ls ... sample.tar.gz ... ("sample/"が一括削除されたことを確認)(すべて正しく働くことを確認したので "sample.tar.gz" のみを残して他は削除しておく)
20/11/1999 T. Katayama