GNU/Linux >> Linux の 問題 >  >> Linux

Linux find コマンド - 進行状況を表示

解決策 1:

このトリックを使用すると、現在のフォルダーを表示できますが、プログレス バーは表示されません。申し訳ありません。

 watch readlink -f /proc/$(pidof find)/cwd

解決策 2:

pv という小さなユーティリティ (パイプ視聴者) かもしれません ヘルプ。 Peteris Krumins による素晴らしい要約から:

パイプ ビューアーは、パイプラインを介してデータの進行状況を監視するための端末ベースのツールです。

pv はさまざまな方法で使用できます。ここで遊んでいるときは、パイプの直後に配置して、find によって生成された出力の進行状況を監視します (stdin をそのまま stdout に渡す必要があります)

find / -mtime -1h | pv > /dev/null

次のような出力が表示されます:

6.42MB 0:01:25 [31.7kB/s] [         <=>      ]

(stdout を /dev/null にリダイレクトしたので、出力が飛び交うことなく進行状況バーが動作していることを確認できました。これはおそらく find の意図ではないため、それに応じて調整してください)

正直なところ、これが実際にうまく機能するかどうかはわかりません。上記のような「高価な」検索 (ルートからのトラバース) の場合、かなりうまく機能するように見えました。ディレクトリ ツリーのより深いノードにある単純なコマンドの場合、pv は惨めに失敗しました。これらのコマンドはすぐに結果を返すため、進行状況バーはおそらく意味がありません。

いずれにせよ、いろいろ試してみて、これが必要なものに対して機能するかどうかを確認してください。少なくとも、考える材料はあります。

解決策 3:

今日これを検索し、Google経由でここにたどり着きました。 OS X で長時間実行されている検索があり、どうやら watch そこには存在しません。別の解決策は次のとおりです。

lsof -Fn -a -c find -d cwd +r 10

  • lsof =開いているファイルのリスト
  • -Fn =ファイル/ディレクトリの名前を表示するだけです (「n」文字で始まる、完全な lsof を好む場合はこれをスキップしてください) 出力
  • -a =Tell lsof すべてに一致する行のみを表示するには 条件 (デフォルトでは、any に一致する行が表示されます 基準)
  • -c find =find という名前のプロセスによって開かれたファイル/ディレクトリを表示 (実際には、名前が find で始まるプロセス 、ただし大文字と小文字が区別されるため、Finder 表示されません)
  • -d cwd =FD (ファイル記述子) cwd (現在の作業ディレクトリ) を含む行を表示
  • +r 10 =開いているファイルが見つからなくなる (検索が終了する) まで、10 秒ごとに出力を表示します

これにより、ディレクトリ find が表示されます は 10 秒ごとに処理されているため、find かどうかがわかります。 まだ機能しており、どこまで進んでいるか.

解決策 4:

find を使用した並列検索の例があります man find で .それを使用すると、すべてのアイテムに対して複数のチェックを実行し、どの条件が機能するかに応じて複数のアクションを実行できます。最初のチェックは、たとえば simple-print です。 であるため、すべての名前が stdout に出力されます。 2番目のチェックは、あなたが望むことを行います。次のようなもの:

find /work \( -fprint /dev/stderr \) , \( -name 'core' -exec rm {} \; \)

2 番目のチェックでもファイル名を表示する必要がある場合は、-fprint /dev/stderr を使用してそのうちの 1 つを stderr にリダイレクトできます。 .

解決策 5:

私の知る限り、そうではありません。実装するのは簡単ではありません。

... うーん。おそらく find <target dir> -type d を実行するスクリプト 最初にリストを保存し、次に find <list item> -maxdepth 1 <rest of find parameters> を実行する前に各ディレクトリをエコーし​​ます for ループ内。

動作をぼんやりと見ることができるのと引き換えに、/重大な/パフォーマンスの低下と交換していることに注意してください。


Linux
  1. Linux での find コマンドの例

  2. 別のコマンドのパラメーターとしての Linux コマンド出力

  3. Linuxでプロセスの優先順位を見つけるコマンドは何ですか?

  1. Linuxのfindコマンドの25の簡単な例

  2. Linuxmvコマンド

  3. Linuxduコマンド

  1. LinuxでDDShowProgressコマンドを使用する方法は?

  2. Linuxipコマンド

  3. Linuxcdコマンド