見出し画像

EnvaderでLinux基礎コマンドを学ぶ[その6]

Envaderで基礎コマンドを学ぶその6。
今回は、Linux基礎コースの「find編」です。

findは、ファイルやディレクトリなどを検索するためのコマンドです。
以下の様に使います。grepコマンドとの違いは、grepは、ファイル内の特定の文字列を検索するためのコマンドです。

$ find 検索場所 [オプション] 検索ファイル名
$ find ./ example.txt

よく使われるオプションとして、Envaderでは、下記6つがあげられています。

【Findでよく使われるオプション】
-name
ファイル名やディレクトリ名を指定して検索します。大文字と小文字を区別します。大文字と小文字を区別しないものに-inameがあります。
-type ファイル、ディレクトリ、シンボリックリンクなどタイプを指定できます
-atime ファイルにアクセスした時間を指定して検索ができます
-mtime ファイルを更新した時間を指定して検索ができます
-empty 空のファイルやディレクトリを検索します
-size ファイルやディレクトリのサイズを指定できます

その5で書いた「file」のコマンドは、ファイルの種類や中身を判別するものでしたが、このfindは、ファイル名やディレクトリ名だけでなく、ファイルの種類やファイルのサイズ、更新時間などさまざま切り口から検索することができます。上記意外にもパーミッションで検索とかユーザーを指定して検索といったことができるようです。

Envaderでの問題はこんな感じでだされます。

Envaderでの実際の問題

これは、ワイルドカードと-atimeを組み合わせて解くようなかたちになっています。

find *.java

例えば、上記の様な「*」の部分がワイルドカード。これによって「.java」と拡張子のついたファイルが検索できることになります。

特定の日にアクセスされたというのは…

find ./*.java -atime 0

といったかたちで組み合わせを行います。

Envaderでは、この様に事前に基礎を学ぶ解説をどのように組み合わせて使うかということが説明されてから問題に挑むのですが、最適解というは意外と難しくて、正解にたどり着いても余計なコマンドを打って遠回りをしていたということもあったり、正解したけど、これって正しいのといったこともあったりですが、解説や解説動画をみて確認するというかたちになります。

正解すると解答、解説もみられる


もっと新しい繋がり、信頼とコミュニティを築けますように。