お世話になっている Linux のコマンド(4)

ファイルとテキストの検索

find コマンド

ファイルを検索する。

$ find /vagrant -name "Vagrantfile" -type f 2>/dev/null
/vagrant/Vagrantfile

タイムスタンプを指定して、ファイルを検索する。
-mtime-atime-ctime オプションで日数を指定、-mmin-amin-cmin オプションで分数を指定する。 -1 で 1 日以内の更新、+1 で 1 日より前の更新が対象。
※それぞれ更新日時、アクセス日時、属性変更日時

$ find /vagrant -mtime -10
/vagrant
/vagrant/.vagrant
/vagrant/.vagrant/machines/default/virtualbox/box_meta
/vagrant/.vagrant/machines/default/virtualbox/synced_folders
/vagrant/Vagrantfile

grep コマンド

文字列を検索する。

$ grep "vagrant" /vagrant/Vagrantfile
  # https://docs.vagrantup.com.
  # boxes at https://vagrantcloud.com/search.
  # `vagrant box outdated`. This is not recommended.
  # config.vm.synced_folder "../data", "/vagrant_data"

-r オプションで、ディレクトリを指定して文字列を検索する。

$ grep "vagrant" /vagrant
grep: /vagrant: Is a directory

$ grep -r "vagrant" /vagrant
/vagrant/.vagrant/machines/default/virtualbox/synced_folders:{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/work2/vagrant","disabled":false,"__vagrantfile":true}}}
/vagrant/.vagrant/machines/default/virtualbox/vagrant_cwd:C:/work2/vagrant
/vagrant/Vagrantfile:  # https://docs.vagrantup.com.
/vagrant/Vagrantfile:  # boxes at https://vagrantcloud.com/search.
/vagrant/Vagrantfile:  # `vagrant box outdated`. This is not recommended.
/vagrant/Vagrantfile:  # config.vm.synced_folder "../data", "/vagrant_data"

-c オプションで、文字列がマッチした行数を表示する。

$ grep -c "vagrant" /vagrant/Vagrantfile
4

-v オプションで、文字列がマッチしなかった行を表示する。

$ grep -vc "vagrant" /vagrant/Vagrantfile
66

$ wc -l /vagrant/Vagrantfile
70 /vagrant/Vagrantfile

-l オプションで、文字列を含むファイル名を表示する。

$ grep -lr "vagrant" /vagrant
/vagrant/.vagrant/machines/default/virtualbox/synced_folders
/vagrant/.vagrant/machines/default/virtualbox/vagrant_cwd
/vagrant/Vagrantfile

-L オプションで、文字列を含まないファイル名を表示する。

$ grep -Lr "vagrant" /vagrant
/vagrant/.vagrant/machines/default/virtualbox/action_provision
/vagrant/.vagrant/machines/default/virtualbox/action_set_name
/vagrant/.vagrant/machines/default/virtualbox/box_meta
/vagrant/.vagrant/machines/default/virtualbox/creator_uid
/vagrant/.vagrant/machines/default/virtualbox/id
/vagrant/.vagrant/machines/default/virtualbox/index_uuid
/vagrant/.vagrant/machines/default/virtualbox/private_key
/vagrant/.vagrant/rgloader/loader.rb