Linux コマンド:ファイル/ディレクトリ操作

ファイル操作

nautilus

ファイルマネージャーで開く
 $ nautilus test1
 ※test1というファイルorディレクトリをファイルマネージャーで開く

tar

アーカイブ作成/展開
※圧縮/解答ではない。

オプション 機能
-c 書庫を新規に作成する
-x 書庫からファイルを取り出す
-v 処理したファイルの一覧を詳細に表示する
-f ファイル名:指定した書庫ファイルまたはデバイスを使用する。
-C ディレクトリ名:指定したディレクトリに移動してから動作を始める
-z ~.tar.gz形式のファイルを展開

例:書庫ファイルを展開する
$ tar -xvf test.tar

zip/unzip

解凍
$ unzip (ファイル名).zip

圧縮ファイル内容一覧
$ unzip (ファイル名)

圧縮
$ zip (圧縮後ファイル名).zip (圧縮前ファイル名)
例:$ zip after.zip *.txt

7z

インストール
yum install -y p7zip-full

解凍
7za x ~.7z

gzip

圧縮
gzip (ファイル名)

解凍
gzip -d ~.gz

ln

ハードリンク作成
ln /test/test.txt testlink

シンボリックリンク作成
ln -s /test/test.txt testlink
ln -s /test testlink

リンクの確認
ls -la
testlink -> /test/~

機能 ハードリンク シンボリックリンク
ファイルへのリンク
ディレクトリへのリンク ×
別ファイルシステムへのリンク ×
リンク先移動時の挙動 移動後のパスへ自動修正 移動前のパスを保持

テキスト操作

cat

ファイルの中身を出力

head/tail

先頭/末尾n行のみ出力する。
head -n 10
tail -n 10

head – 10
tail – 10
nは省略可

sed

1~10行目を除外して表示
sed -e '1,10d' test.txt

1~10行目を除外して保存
sed -i -e '1,10d' test.txt

wc

テキスト・ファイルの行数、単語数、バイト数を表示
$ wc (ファイル名)

行数のみ表示
$ wc -l (ファイル名)

grep

引数を含む行のみを抽出する。

$ grep オプション 検索語 検索対象ファイル
$ grep -X test test.txt

オプション 機能
-i 大文字と小文字を区別しない
-w 単語全体でパターンと一致するものを検索する
-R サブディレクトリ以下も検索する
-R 検索パターンにマッチしたファイル名のみ表示

正規表現
$ grep -X aa*bb /etc/*.conf

パイプ処理
$ cat /etc/passwd | grep /bin

cut

入力文字列を引数で分割する。
$ /etc/passwd cut -d ‘:’
文字列を’:’で分割し、1番目の列のみ抽出する。
$ etc/passwd cut -d ‘:’ -f 1

sort

入力文字列をソートする
$ /etc/passwd sort

diff

差分表示
$ diff (ファイル1) (ファイル2)

uniq

上下行の重複を削除
$ sort (ファイル名) | uniq

less

1画面ずつ表示
$ less (ファイル)

Linuxコマンドをパイプ処理
$ (コマンド) | less
$ grep aaa test.txt | less

表示結果の先頭に行番号を付加
$ less -N (ファイル)
$ grep aaa test.txt | less -N

検索語を強調表示
$ less -p (文字列) (ファイル)
$ grep aaa test.txt | less -p aaa

【画面表示時の操作】
次頁:「Space」
前頁:「b」
次行:「j」= vi
前行:「k」= vi

vi

Vi/Vim/GVim使用方法」参照

検索

locate

$ locate (ファイル名)
$ locate httpd.conf

自階層以下より検索
$ locate -b

検索結果を削除
$ locate -b ~ | xargs rm -rf

find

find (検索先ディレクトリ) (検索条件) (アクション)

(検索先ディレクトリ)省略 → カレントディレクトリが検索先
(検索条件) → 全ディレクトリ、全ファイルが検索対象
(アクション) → 検索結果を全て表示(-lsアクションと同等)

複数ディレクトリを検索
find (検索先ディレクトリ) (検索先ディレクトリ) (検索条件) (アクション)
find /a /b -name test.txt

複数(AND)条件で検索
find (検索先ディレクトリ) (検索条件) (検索条件) (アクション)
find / -name test -type f

複数(OR)条件で検索
find (検索先ディレクトリ) (検索条件) -OR (検索条件) (アクション)
find / -name aaa -or -name bbb

複数(AND、OR)条件で検索
find (検索先ディレクトリ) (検索条件) (検索条件) -OR (検索条件) (アクション)
find / -name aaa -type f -or -name bbb

除外条件で検索
find (検索先ディレクトリ) !(検索条件) (アクション)
find / !-name aaa

複数除外条件で検索
find (検索先ディレクトリ) !(検索条件) (アクション)
find / !-name aaa !-name bbb

ファイル/ディレクトリ名で検索
find / -name aaa
find / -name *.txt
find / -name aaa.*

正規表現で検索
find / -regex (正規表現)

ファイルのみを検索
find / -type f ~

ディレクトリのみを検索
find / -type d ~

指定バイトより大きいファイルを検索
find / -size +500 ~

指定バイトより小さいファイルを検索
find / -size -500 ~

検索するディレクトリ階層を制限して検索
find / maxdepth 1 ~
指定ディレクトリの直下のみ

find / maxdepth 2 ~
指定ディレクトリから1階層下までを検索

検索結果Linuxコマンドを実行
find ~ -exec (Linuxコマンド)
find ~ -exec rm -rf {} \;
{}は検索結果によって置換される。
1.txt
2.txt
3.txt
が検索された場合、
rm -rf 1.txt
rm -rf 2.txt
rm -rf 3.txt
が1つずつ実行される

find ~ | xargs (Linuxコマンド)
find ~ | xargs rm -rf
-execと違って検索結果が同時に処理される