locate.updatedb
コマンドを使用してそのディレクトリ内のファイルを見つけるために、macOS / BSDでインデックス付けするディレクトリを追加するにはどうすればよいですかlocate
?
Macでマニュアルページを読みlocate(1)
ましたが、役に立つものが見つかりませんでした。
答え1
マニュアルページには、このコマンドを使用して項目を見つけるlocate(1)
方法が記載されています。locate
索引付けはで行うため、マニュアルページをlocate.updatedb
読む必要があります。locate.updatedb(8)
しかし、少なくともmacOS Big Surでは、問題に関連する情報が多少制限されています。基本的には次のように言います。
新しく作成されたデータベースの内容はファイルで制御できます
/etc/locate.rc
。
デフォルトでは、すべての設定は/etc/locate.rc
コメントアウトされているように見えます。あなたの質問に関連する行は次のとおりです。
# directories to be put in the database
#SEARCHPATHS="/"
# directories unwanted in output
#PRUNEPATHS="/tmp /var/tmp"
# filesystems allowed. Beware: a non-listed filesystem will be pruned
# and if the SEARCHPATHS starts in such a filesystem locate will build
# an empty database.
#
# be careful if you add 'nfs'
#FILESYSTEMS="hfs ufs apfs"
ファイルが注釈付きの例のようにデフォルト設定を表示する規則に従うと仮定すると、次のようになります。すべて/tmp
デフォルトでは、HFS、UFS、またはAPFSファイルシステムのコンテンツはインデックス付けされますが、HFS、UFS、またはAPFSファイルシステムのコンテンツは除外されます/var/tmp
。
追加するディレクトリがこれらのファイルシステムタイプの1つであるか下に/tmp
ない場合は、次回の実行時に/var/tmp
ディレクトリを自動的にインデックス付けする必要があります。locate.updatedb
多くのバリエーションでは、locate
結果を表示するときにアクセス権を確認し、表示権限があるファイルのみを表示します。