複数のディレクトリで特定のファイルを移動する

複数のディレクトリで特定のファイルを移動する

さまざまな種類のファイルの何千ものファイルを含む多数のディレクトリがあります。

dir
 |__ subdir
 |    |__ file.foo
 |    |__ file.bar
 |    |__ file.txt
 |    |__ (...)
 |__  (...)

すべてのサブディレクトリですべての.txtを移動するための迅速で効率的な方法は何ですか?2行以上のファイル別の選択したディレクトリに?

ベストアンサー1

GNUシステムでは:

find dir -type f -name '*.txt' -exec awk '
    FNR == 2 {printf "%s\0", FILENAME; nextfile}' {} + |
  xargs -r0 mv -t newdir

(これにより、同じ名前のファイルが互いに上書きされる可能性があります。GNUを一度呼び出すとこれを防ぐことができますが、複数mvxargs呼び出すと問題になる可能性があります。)

おすすめ記事