Bashの検索ファイルで一致するファイルを「キャッチ」する方法は?

Bashの検索ファイルで一致するファイルを「キャッチ」する方法は?

ファイル名を含む照会ファイルがあります。また、ファイルを含むディレクトリがあり、その中にはディレクトリの特定の名前に対応する名前があります。

私がすることができます:

  1. 正確に一致するファイルを新しいディレクトリに移動するか、
  2. 既存のディレクトリから一致しないファイルを削除します。

また、最上位ディレクトリとそのサブディレクトリを介してこの操作を繰り返し実行するにはどうすればよいですか?

ベストアンサー1

たぶん、次のようなものがあります。

sed -e 's;^.*$;\^&\$; list-of-names > list-of-patterns

rm $(find . -type f | grep -v -f list-of-patterns)

ファイル名にシェルが特別であると見なされるスペースや文字が含まれていると、確実に壊れる可能性があります。実際に実行する前に、何が削除されていることを確認してください!

(スキーマファイルをバイパスする方法があるかもしれませんが、まったく見えません。)

おすすめ記事