LPIC ファイル操作周りについて

gzip コマンド

gzip [オプション] ファイル名
オプション 説明
-d 圧縮ファイルを展開する。
-c 標準出力へ出力
-r ディレクトリ内のファイルすべてを圧縮
# ls
test  test.txt
# gzip test.txt
# ls
test  test.txt.gz
# gzip -d test.txt.gz
# ls
test  test.txt
# gzip -c test.txt > test.txt.gz
# ls
test  test.txt  test.txt.gz
# ls test/
1.txt  2.txt  3.txt
# gzip -r test
# ls test
1.txt.gz  2.txt.gz  3.txt.gz

gunzipコマンドはgzip -dと同じ

bzip2 コマンド

bzip2gzipよりも圧縮効率がよい。

gzip [オプション] ファイル名  
オプション 説明
-d 圧縮ファイルを展開する。
-c 標準出力へ出力
# ls
test  test.txt
# bzip2 test.txt
# ls
test  test.txt.bz2

tarコマンド

よく使うので手短に

オプションは-cで作成-xで展開-tで内容の確認。 -z,-j,-Jはそれぞれgz,bz2,7z

cpioコマンド

ファイルをアーカイブにコピーしたり、アーカイブからファイルをコピーする。

cpio フラグ [オプション]
フラグ 説明
-i オプション パターン アーカイブからファイルを抽出する
-o オプション アーカイブを作成する
-p オプション ディレクトリ ファイルを別のディレクトリにコピーする
オプション 説明
-A 既存のアーカイブにファイルを追加する
-d 必要ならディレクトリを作成する
-r ファイル名を対話的に変更する
-t コピーはせず、入力された内容を一覧表示する
-v ファイル名の一覧を表示する
$  ls | cpio -o > archive

dd コマンド

入力側に指定したファイルからの入力をファイルもしくは標準出力に送る。 cpコマンドと違うのはHDDやCD-ROMなどのディバイスを扱えること。

# dd if=/dev/sdb of=/dev/sdc

SUID, SGID

とあるプログラムで誰が実行してもrootユーザで実行されるようにしたいときはSet User ID(SUID)が利用できる。

$ chmod u+s プログラム名など

もしくは644などの3桁のアクセス権に4000を加える事でSUIDを実現できる。
設定グループで実行されるようにしたい場合はSet Group ID(SGID)が利用できる。

$ chmod g+s プログラム名など

3桁のアクセス権に2000を加える事でSGIDを実現できる。

ステッキービット

書き込み権限があっても自分以外のユーザが所有するファイルを削除できないというような設定はスティッキービットを指定することでできる。/tmpなどで利用されている仕組み。

# chmod o+t dir

もしくは3桁のアクセス権+1000。

umask

umaskは

777- 3桁のアクセス権

で求まる数値。

# umask
0022
# umask 077
# ls -l hello.txt
-rw-------. 1 root root 0 Jun  8 17:53 hello.txt

ACL

アジアNo.1クラブを決めるサッカーの・・ではなく、chmodの3桁だけでは細かいアクセス制御を行うときに使える。Access Control List(ACL)

$ setfacl -m u:hoge:rw testfile (hogeユーザに読み書きを許可)
$ getfacl ファイル名 (ACL情報の取得)

chown, chgrp

よく使うので割愛

lnコマンド

ハードリンク、シンボリックリンクを作成する。

$ ln オリジナルファイル名 リンクファイル名 (ハードリンク)
$ ln -s オリジナルファイル名 リンクファイル名 (シンボリックリンク)

cpコマンドでリンクをコピーするとリンク先の自体65コピーされる。cp -dとやればシンボリックリンク自体をコピーできる。