新米インフラエンジニアの日常

インフラエンジニアとして働いている筆者が、技術に関することから日常生活までを気ままに綴っていきます。

業務で使う実用的なLinuxコマンド(ファイル検索編)

こんばんは、くろわです。 ブログを始めたのはいいものの、平日は忙しくて中々書く暇がありませんでしたヽ( ;´Д`)ノ

週末は基本的に家でゆっくりしてることが多いのですが、今週は遊びに出かけていたので更新が遅れてしまいました。 初回からいきなり更新が遅くなりましたが、なるべく更新して、自分の記録としても残せるよう頑張ります(`・ω・´)

さて、タイトルにも書きましたが、今回は現在業務で使っているLinuxコマンドを一部紹介します。よかったら使ってみてください。 逆に、このコマンドのほうがいいよなどのアドバイスがあれば、いただけると幸いです。

  • ls -al
    このコマンドでは、カレントディレクトリに存在するすべてのファイルを表示します。1番使うであろう基本のコマンドですね。
    aオプションを指定することで、ドットから始まる隠しファイルを表示し、lオプションを指定することでファイルの詳細情報(ファイルの所有者や権限など)も表示しています。また、tオプションをつけることで、タイムスタンプ順にソートすることできるので、そちらも便利です。
    上記例ではディレクトリを指定していないのでカレントディレクトリの情報が表示されていますが、ディレクトリを指定して表示することも可能です。
croissant# ls -al
total 131064
drwxr-xr-x   8 croissant  staff       272  6 27 01:35 .
drwxr-xr-x+ 60 croissant  staff      2040  6 27 01:35 ..
drwxr-xr-x   4 croissant  staff       136  6 27 01:15 dir1
drwxr-xr-x   3 croissant  staff       102  6 27 01:14 dir2
drwxr-xr-x   4 croissant  staff       136  6 27 01:16 dir3
-rw-r--r--   1 croissant  staff        69  6 27 01:35 hoge.txt
-rw-r--r--   1 croissant  staff  33549088  6 27 01:36 hoge1.txt
-rw-r--r--   1 croissant  staff  33549094  6 27 01:37 hoge2.txt
  • ls -al | grep "hoge*"
    このコマンドでは、カレントディレクトリに存在するhoge」からファイル名が始まるファイルをすべて表示します。
croissant# ls -al | grep "hoge*"
-rw-r--r--   1 croissant  staff        69  6 27 01:35 hoge.txt
-rw-r--r--   1 croissant  staff  33549088  6 27 01:36 hoge1.txt
-rw-r--r--   1 croissant  staff  33549094  6 27 01:37 hoge2.txt
  • ls ./dir*
    このコマンドでは、ディレクトリ名が「dir」から始まるディレクトリに存在するファイルの一覧を表示します。似たようなディレクトリ名が複数あり、それぞれどのようなファイルが入っているか確認するときに便利です。
croissant# ls ./dir*
./dir1:
a.txt     hoge3.txt

./dir2:
b.txt

./dir3:
c.txt     hoge5.txt
  • find . -size +10k | wc -l
    このコマンドでは、カレントディレクトリに存在するサイズが10kバイト以上のファイルの数を表示します。
croissant# find . -size +1000k | wc -l
       2
  • find . -name hoge.txt
    このコマンドでは、カレントディレクトリ配下(ディレクトリの中身も含む)に存在するhoge.txt」というファイル名のファイルを検索します。
    範囲を広げたい場合は「/」を指定したり、ファイル名が「hoge1.txt」とか「hoge2.txt」のものを探したいときには「"hoge*.txt"」のように指定することで検索できます。(正規表現で指定するときにはシングルクォーテーションやダブルクォーテーションで囲ってください)
croissant# find . -name "hoge*.txt"
./dir1/hoge3.txt
./dir3/hoge5.txt
./hoge.txt
./hoge1.txt
./hoge2.txt
  • find . -type f | xargs grep hello
    このコマンドでは、カレントディレクトリ配下(ディレクトリの中身も含む)に存在する「hello」という文字列が含まれているファイルを検索します。
croissant# find . -type f | xargs grep hello
./dir1/a.txt:hello
./dir3/c.txt:hello
./hoge2.txt:hello

本当はいろいろなコマンドを書こうと思っていましたが、思ったより書くのに時間がかかってしまったため、今回はファイル検索編としました。

次回はサーバの管理等に使うコマンドを紹介しようと思っています!