私はオリが好きなのと同じくらいです(これはたくさんあります!)私は彼のfind命令に反対します。好きじゃない。
find コマンドには3分以上かかります
たとえば、次の簡単なコマンドを見てください。
$ time find / -type f -name "mail-transport-agent.target"
find: ‘/lost+found’: Permission denied
find: ‘/etc/ssmtp’: Permission denied
find: ‘/etc/ssl/private’: Permission denied
    (... SNIP ...)
find: ‘/run/user/997’: Permission denied
find: ‘/run/sudo’: Permission denied
find: ‘/run/systemd/inaccessible’: Permission denied
real    3m40.589s
user    0m4.156s
sys     0m8.874s
これは、引き継ぎ3分のためにfindから始まるものを検索します/。デフォルトでは、一連のエラーメッセージが表示されます。探しているものを見つけるには、エラーメッセージを検索する必要があります。それでも53時間grepかかる文字列をドライブ全体で検索するよりも良いです:文字列のすべてのファイルを `grep`するのには長い時間がかかります
findコマンドのパラメーターをいじって操作を改善できることは知っていますが、ここでのポイントは実行にかかる時間です。
locate コマンドの所要時間は1秒未満
使用してみましょうlocate:
$ time locate mail-transport-agent.target
/lib/systemd/system/mail-transport-agent.target
real    0m0.816s
user    0m0.792s
sys     0m0.024s
探しコマンドは秒未満を取ります!
updatedb デフォルトで1日1回のみ実行
ロケートデータベースupdatedbを更新するコマンドは、デフォルトでは1日に1回しか実行されません。次を使用して、追加したばかりのファイルを検索する前に手動で実行できます。
$ time sudo updatedb
real    0m3.460s
user    0m0.503s
sys     0m1.167s
これには3秒かかりますが、findコマンドの3分以上と比較すると短いです。
sudo crontab -e一番下の行を含めるように更新しました:
# m h  dom mon dow   command
  0 0  1   *   *     /bin/journalctl --vacuum-size=200M
*/5 *  *   *   *     /usr/bin/updatedb
現在、5分ごとにupdatedb実行され、locateコマンドデータベースはほとんど常に最新です。
しかし、属性はありませんか?
locate出力を他のコマンドにパイプできます。たとえば、ファイル属性が必要な場合は、次を使用できます。
$ locate mail-transport-agent.target | xargs stat
  File: '/lib/systemd/system/mail-transport-agent.target'
  Size: 473         Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d   Inode: 667460      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-03-31 18:11:55.091173104 -0600
Modify: 2017-10-27 04:11:45.000000000 -0600
Change: 2017-10-28 07:18:24.860065653 -0600
 Birth: -
概要
の速度と使いやすさを示すために、この回答を投稿しましたlocate。他の人が指摘したコマンドの欠点のいくつかに対処しようとしました。
findコマンドは、ファイルを検索するディレクトリ構造全体を横断する必要があります。このlocateコマンドには独自のデータベースがあり、比較すると非常に高速です。