(Linuxコマンド)findの使い方について
この記事の内容
- Linux環境におけるfindコマンドについて
実行環境
オンライン学習サービスEnvaderを使いました。
Envaderは、環境構築が不要で簡単にLinux環境が学べるので学習するのにとても便利でした。コースは、
- Linux基礎
- Linux応用
- セキュリティー基礎 などなど
無料で使えて、初心者には難易度の高い環境構築しなくていいのでおすすめです。(一部有料)
findコマンドとは?
find
コマンドとは、ファイルやディレクトリなどを検索し見つけ出すためのコマンドです。オプションもたくさんあるので少しずつでもいいので覚えていきましょう!
基本的な使い方
$ find 検索場所 [オプション] 検索ファイル名
$ find 検索場所 [オプション] 検索ファイル名
これだけだと少しわかりずらいと思うので、実際に入力したしたコマンドを見ていきましょう。
envader@172-19-4-2:~$ find *.go
main.go
main2.go
main3.go
main4.go
上のコマンドは、すべての場所(*
)から.go
という拡張子をもったファイル、ディレクトリを検索するとしたものです。*
は、ワイルドカードと呼ばれる*
の前に書かれた文字は、どれでも対象にしますよという特殊な文字です。これが基本的なfind
の使い方です。次は、オプションについて見てみましょう。
よく使うオプション
オプション | 説明 |
---|---|
-name | ファイル名やディレクトリ名を指定して検索します。大文字と小文字を区別します。大文字と小文字を区別しないものに-inameがあります。 |
-type | ファイル、ディレクトリ、シンボリックリンクなどタイプを指定できます |
-atime | ファイルにアクセスした時間を指定して検索ができます |
-mtime | ファイルを更新した時間を指定して検索ができます |
-empty | 空のファイルやディレクトリを検索します |
-size | ファイルやディレクトリのサイズを指定できます |
参考資料:https://envader.plus/course/1/scenario/1016
大文字と小文字を区別して検索する-name
$ find ./ -name \*.go
main.go
main1.go
# main2.GO 表示されない
# main2.Go 表示されない
$ find ./ -name \*.go
main.go
main1.go
# main2.GO 表示されない
# main2.Go 表示されない
-name
は、大文字と小文字を区別して検索を行います。そのため、上記の入力では、.go
のみ表示され、.GO
は表示されません。また、-name
は、特殊文字を使う場合は、/
を使う必要があります。 -name
に似たコマンドで、 -iname
があります。これは、 -name
とは逆で、大文字と小文字を区別しないで表示します。
$ find ./ -iname \*.go
main.go
main1.gO
main2.GO
ファイル、ディレクトリのタイプを指定できる -type
$ find *2* -type f
main2.go
main2.py
$ find *2* -type f
main2.go
main2.py
-type
の後ろに指定するタイプを書きます。
-f
は、ファイル、-d
は、ディレクトリ、-l
は、シンボリックリンクです。
ファイルにアクセスした時間を指定する-atime
$ find ./*.go -atime -2
./main2.go
./main.go
$ find ./*.go -atime -2
./main2.go
./main.go
-atime
の後にある-2
は一昨日を表しています。
今日であったら、0、昨日であったら1と書くことで時間を指定できます。
もし、数字の前に-
がついていた場合は、その日数以内を意味します。なので、今回の上の実行では、2日以内にアクセスされた拡張子が.goと記されたファイルを検索します。
また、下のように数字の前+
がついていた場合は、その日数よりも前にアクセスしていた場合を指します。
この場合は、2日より前にアクセスされた.pyファイルを検索します。
$ find ./*.py -atime +2
./main2.py
./main3.py
空のファイルやディレクトリを検索できる-empty
find ./ -empty
find ./ -empty
-empty
では、中身がからのファイルやディレクトリを検索できます。
ファイルやディレクトリのサイズを指定しできる-size
find ./ -size 1k
./main4.go
./main4.py
./main.py
find ./ -size 1k
./main4.go
./main4.py
./main.py
-size
は、ファイルやディレクトリのサイズを指定できます。
上の場合の1k
は、1キロバイト(KB)を指しています。他にも、メガバイト(M)やギガバイト(G)などがあります。
まとめ
今回は、ファイルやディレクトリを探索し見つけ出すfind
コマンドについて学びました。find
コマンドには、たくさんのオプションがあり、1度に覚えるのは大変だと思います。わからないときは、その都度調べ、徐々に身に着けられるようにしていきましょう!
参考資料
【Linuxコマンド】findの使い方について:https://envader.plus/course/1/scenario/1016
Author And Source
この問題について((Linuxコマンド)findの使い方について), 我々は、より多くの情報をここで見つけました https://qiita.com/shu19/items/c62dbc9ca159763b0021著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .