アップデートがプラグを抜いたリムーバブルドライブへのローカルパスを保存できますか?

アップデートがプラグを抜いたリムーバブルドライブへのローカルパスを保存できますか?

私は次のようにupdatebを実行します。updatedb --localpaths="/a /b"

/aリムーバブルドライブです。/bローカルハードドライブです。常にアクセスできるわけではありませんが、特定のファイルがそこにあるかどうかを見つけるために/a実行したいことがよくあります(最後に実行した時間に基づいて)。locateupdatedb

問題は、updatedb接続していない状態で実行するとエラーが発生することです。

/usr/bin/find: '/a': No such file or directory

データベースはこれに関する最新情報を取得しますが、既存のデータを/b削除します。/a接続していないときに/aデータを保持する方法はありますか?/aupdatedb

私はこれが複数のデータベースで可能になると思います。 1つはfor /a、1つはforです/b。その後、スクリプトは/a挿入するかどうかを決定するときに挿入されたことを確認できますupdatedb

ただし、2つのコマンドのマニュアルページでは、私が知っているよりも多くを知っていると仮定しているので(これは何をすべきかFINDOPTIONS)、この問題に対するより簡単な解決策があることを願っています。

ベストアンサー1

私はWindows上のLinuxやGNUのバージョンがわかりませんが、あなたが望むことをするlocateことができます。より長いバージョンのマニュアルがあります。ここ

単一のupdatedb --localpaths="/a /b"コマンドを2つのコマンドに置き換えます。

updatedb --localpaths="/b"
if [ -d "/a" ]; then updatedb --localpaths="/a" --output=/dir/mydb; fi

/dir/mydbデータベースが保存されるファイルのフルパス名はどこにありますか?

ターゲットとして指定するときは、環境変数LOCATE_PATHをに設定してください/dir/mydb::。原則として、::これは標準データベースを使用することを意味する必要があります。

それでも::機能しない場合は、を実行して標準データベースのファイル名を取得できますupdatedb --help。たとえば、デフォルト値がと表示されている場合は/usr/local/var/locatedbこれを設定できますLOCATE_PATH=/dir/mydb:/usr/local/var/locatedb。この-dオプションを使用して、locateこのデータベースのリストを提供することもできます。

おすすめ記事