存在するFreeBSD12. 新しいものを作る仮想デバイス(デジタル海)、私はlocate
注文する。
$ locate java
エラーが発生します。
場所: データベースが小さすぎます: /var/db/locate.database
/usr/libexec/locate.updatedb の実行
だから私は走ったlocate.updatedb
。
$ /usr/libexec/locate.updatedb
権限の問題について文句を言うメッセージを受け取りました。
/usr/libexec/locate.updatedb: /var/db/locate.database を生成できません: 権限が拒否されました。
いいね、sudoで実行してください。
$ sudo /usr/libexec/locate.updatedb
セキュリティ警告を受けました。
警告する
rootとしてupdatebを実行します。これにより、すべてのファイル名が表示されます。
コンピュータにログインしているすべてのユーザーに表示されます。これはセキュリティ上のリスクです。
Unixは本当に面白いです。
➥ FreeBSDシステムでファイルやディレクトリを名前で検索する正確で安全な方法は何ですか?
答え1
locate
独自のデータベースがあるため、簡単かつ迅速にファイルを検索できます。しかし、私はいつも使用しますfind(1)
。結果はそれを実行しているユーザーに返され、ユーザーは適切なファイルシステム権限を持つファイルのみを見つけることができます。
find
/
検索は再帰的であるため、すべてのファイルシステムを検索するには検索パスを指定します。
次の名前のすべてのファイルとディレクトリを探しますfoo
。
find / -name "foo"
探すただファイル名foo
:
find / -type f -name "foo"
探すただディレクトリ名は次のとおりですfoo
。
find / -type d -name "foo"
便利なオプションがたくさんあります。確認するマニュアルページ。
答え2
run periodic
ご存知のように、locate
このコマンドは、ファイルとフォルダ名のインデックスコレクションを格納するデータベースを使用します。 FreeBSDを新しくインストールしたため、データベースはまだ構築されていません。
データベースはいつ構築されますか? FreeBSDが通常の家事を行うとき。毎日、毎週、毎月自動的に完了しなければならない家事がたくさんあります。よりperiodic
注文する。
仮想マシンを作成したら、すぐにこれらのタスクを実行できます。ランニング:
periodic daily
periodic weekly
periodic monthly
または、3つすべてを1行で実行してください。
periodic daily weekly monthly
私の経験では、これらのプロセスはそれぞれ約1分かかります。
➥特にデータベースをweekly
作成/更新しているようです。locate
あなたが知っているものが存在することがわからない場合は、それを行いますrun periodic weekly
。
locate
気になる場合は、実行前後にデータベースの有無とサイズを確認してみてくださいperiodic
。ここで見つけることができます:/var/db/locate.database
locate
これでコマンドを正常に使用できるようになります。