内容全体が "\n" であるすべてのファイルを再帰的に一覧表示する方法

内容全体が

\n内容が正確に1つ(改行文字)の失敗した実験結果ファイルがあります。

ファイルが何であるかを理解して削除するために、すべてのファイルを一覧表示したいと思います(おそらくfind同様のものを使用して)。grep

ベストアンサー1

.検索パスの外に参照ファイルを作成します(例にあります)。

echo >/tmp/reference

これで、探しているファイルと同じ既知のファイルがあります。次に、.検索パス(ここ)の下のすべての一般ファイルを参照ファイルと比較します。

find . -type f -size 1c -exec cmp -s -- /tmp/reference {} \; -print

-size 1c必須ではなく、省略することもできます。ただパフォーマンスを向上させるためのものです。これは、追加のプロセスを作成せずに間違ったサイズのファイルを拒否する迅速な予備テストです。cmp …比較的高価なプロセスは、適切なサイズのファイルに対してのみ生成されます。

-s沈黙cmpする。出力は必要なく、終了状態のみが必要です。

--説明は次のとおりです。"--"(二重ダッシュ) とはどういう意味ですか?この例では実際には必要ありません。つまり、参照ファイルがとして指定され、検索パスがある/tmp/reference場合は、誤って誤った動作や失敗を引き起こす可能性があるパスを選択する.のを防ぐために、誰かが使用します--cmp--

-execテストとして使用すると、テストされたファイルの終了ステータスが0の場合にのみ成功しますcmp。ファイルが一致すると、参照ファイルと同じファイルのパス名が提供されます/tmp/referencefind

この方法は、固定コンテンツを含むファイルを見つけるために使用できます。正確なコンテンツを含む参照ファイルだけが必要です(-size …使用する場合は調整することを忘れないでください。-size "$(</tmp/reference wc -c)c"便利です)。私たちの特別なケースでは、echo単純な方法を使用して正確に必要な改行文字を印刷するので、ファイルを生成します。

find一致するすべてのファイルを削除するには、次を使用します。-delete(XOR -exec rm -- {} +後ろに-print

おすすめ記事