新しいLinuxの教科書 ファイルを探す
# アクションは検索ヒットしたファイルに対しての操作 find 検索開始ディレクトリ 検索条件 アクション
検索条件 | 動作 |
---|---|
-name | 大文字、小文字を区別して検索 |
-iname | 大文字、小文字を区別しないで検索 |
-type f | 通常ファイルを検索 |
-type d | ディレクトリ検索 |
-type l | シンボリックリンク検索 |
アクション | 動作 |
---|---|
パスを表示(デフォルト) |
その他のオプション | 動作 |
---|---|
-a | 検索条件のAND 省略可能 |
# *と?(ワイルドカード)で検索しやすくなる $ find . -name “*.html”
ワイルドカードの注意点
ワイルドカードを使う場合、検索文字列をシングルかダブルクォートで囲むこと。
-name
には一つの引数しか受け付けないが、ワイルドカードを使うと、パス名展開されて、-name
に対して複数の引数を割り当ててしまうため。
$ ls index.html index1.html # 検索結果で複数出ると検索 $ find . -name *.html ↓ $ find . -name index.html index1.html # 展開されない $ find . -name “*.html” # 検索条件は組み合わせることができる。 # 通常のファイルでindex.htmlという名前で検索 $ find . -type f -name index.html
locate
データベースを作ることでfindより速い検索が可能
ただ、データベースタイミングもあるので、作成してしばらくたったものを検索したほうがいい。
名前での単純な検索しかできない。
# データベース更新 # locateインストールで自動で実行するらしいが、うまく検索できなかったら走らせてみるといいかも $ updatedb
オプション | 動作 |
---|---|
-i —ignore-case | 大文字、小文字無視 |
-b --basename | ファイル名だけ検索 (結構使いそう) |
-A | AND検索 |
# OR検索 # testとenvironmentでOR検索 $ locate test environment # AND検索 # testとenvironmentでAND検索 $ locate -A test environment
コマンドの使い方が分からないとき。
—help
を使う
manを使う
—help
より詳しいみたい。
これを知らなかったのは衝撃的。
# コマンドのマニュアル表示 $ man コマンド名 # やりたいことができるコマンドを検索 # なにかdeleteできるコマンドを探してる。 $ man -k delete # manで表示されるマニュアルはセクションというもので別れている。 # lsのコマンドというセクションでマニュアル開く # 特にセクションを指定しなくても1のコマンドのセクションで開くみたい。 $ man 1 ls # セクションの一覧を表示 # -wはマニュアルファイルのパスを表示してくれる。これだけだと、セクション1しか表示されない。 # -aはすべてのマニュアルを表示する。1セクションごとに閲覧でき、qを押すことで、次のセクションに行ける。 # - w と -a が組み合わさって、すべてのマニュアルのパスを表示してくれる。 $ man -wa crontab
コマンドを探す
そもそもコマンドの仕組み
/bin/cat
ではなくcat
でコマンドを実行できるのは。環境変数$PAHT
に参照先を登録してあるから。
cat
の場合、$PATHに/bin
が書いてある。
環境変数の設定方法はMacと一緒。
cat
とかls
と打つと、$PATHのディレクトリを順番に探しに行くらしい。
which
コマンドの実行ファイルのパスを表示してくれる。
# 最初にヒットしたものだけ表示 $ which ls # ヒットしたものすべて表示 $ which ls
マニュアルやヘルプを日本語に表示する
$ LANG=ja_JP.UTF-8 ls —help