検索とリスト -R はさまざまな数のファイルを返します。

検索とリスト -R はさまざまな数のファイルを返します。

ファイルのフルパスを必要とする小さなスクリプトに使用するファイルのリストを含む配列変数を作成しようとしています。周りを見回して、次のことを試しました。

find /path/ -t f | grep randomString

これは必要なファイルのほんの一部だけを返すことがわかったので、以前のwc -lコマンドをRと一緒に使用してls -R /path/ | grep randomString別の行数を得ました(100行を超える差があるため、ls - R outからディレクトリを計算しました)。 。find期待した結果が返されない理由を知りたいです。どんなアイデアがありますか?

答え1

findディレクトリツリーのすべてのファイルを一覧表示します。ls -R実際には、少数のファイルをリストします。省略されます。ファイルをクリック- 必ずls -AR含める必要があります。

必要なファイルが見つからない場合は、次のようないくつかの可能性があります。

  • 出力でこれを逃しました。検索コマンドを使用します(例:lessのキーをfind … | less使用)。/の出力はfind整列されません。
  • このファイルは実際にあなたが考えているものとは異なります。大文字と小文字がわからない場合は、大文字と小文字を区別せずに検索してください。
  • あなたが探しているファイルは実際にシンボリックリンクです。find -xtype f代わりに、find -type fシンボリックリンクが指すファイルに基づいてシンボリックリンクを分類するために使用します。
  • これらのファイルはディレクトリへのシンボリックリンクの下にあります。シンボリックリンクを閲覧するのに便利find -Lですが、注意してください。大規模階層の最上位ディレクトリを指すシンボリックリンクがある場合は、多数のファイルを検索できます。

ls -R存在しないファイルはどんな場合でも見つかりませんfind

ls -R合計出力の行数を簡単に比較することはできませんfind

  • ls -Rドットファイルを省略findしてください。
  • ls -R各サブディレクトリ(ルートディレクトリを除く)には、ディレクトリfind -type fエントリ、前の行とそのディレクトリのリストを区切る空の行、ディレクトリ名の後に続くヘッダ行コロンなど、合計3行があります。

答え2

ls -R を実行すると、ディレクトリ名のリストが出力として表示されます。

関連情報