状態を保存する「find」コマンドバージョンはありますか?

状態を保存する「find」コマンドバージョンはありますか?

検索が大容量ディスクを検索しても何らかの理由で中断された場合は、中断された部分から再開できることを願っています。

これを行うための「検索」バージョンがありますか?

問題は、ディレクトリを保存してそこから実行しても同じクエリを実行しないことです。たとえば、

find /bigvol -type f -execdir whereami="$(pwd)";do_it {} \; echo whereami >/bigvol/state

/bigvol/down/in/the/deep と仮定し、現在検索されているディレクトリを /bigvol/state ファイルに入れます。

ただし、次の照会を開始すると、次のようになります。

find "$(cat /bigvol/state)" -type f -execdir whereami="$(pwd)";do_it {} \; echo whereami >/bigvol/state

その後、「deep」ですべてを見つけることができますが(ディレクトリ内の最初のいくつかのファイルに対して「deep」をやり直す)、停止して/ bigvol / furtherを検索しなくなります。

私はこう言うことができたらと思います:

find <dir>:<starting from>

したがって、上記の例で最後に処理されたファイルを保存した場合は、再起動してください。

理想的には、構文は以下を受け入れます。

find <dir>:<starting_from>    -- start from the last file and re-execute for that filefind <dir>:+<starting_from>    -- start from the file after the last file last file
filefind <dir>:-<starting_from>    -- start from the file before the last file last file

どんなアイデアがありますか?

ベストアンサー1

私はこれをする方法を知らない。たぶん他のツールがこれを行うことができます。あるいは、状況を見るための別の方法が必要な場合があります。

照会操作を複数の照会に分割できます。この/bigvolフォルダにはサブフォルダがあります。タスクをfind各フォルダのタスクに分割できます。最初にいくつかのフォルダをすでに処理している場合は、後でそのフォルダをスキップできます。

ここでの問題は、これらのサブフォルダの1つにファイル全体の95%を含めることができることです。これを分析するために使用できますdu。これを知ればさらに分割できます。問題は、このアプローチでどのくらい遠くまで行くことができるかということです。

おすすめ記事