
複数のサブフォルダーを含むファイル構造があり、特定の文字列 ("sub*") を含むすべてのサブフォルダーを検索し、見つかったフォルダー内のすべてのファイルをそれぞれの場所から 1 レベル上に移動します。さらに、空のフォルダーを削除する可能性もありますが、2 番目の手順でそれを行うこともできます。
答え1
こうすればできるはずです:
find /path/to/base/folder/ -type d -name 'sub*' -exec bash -c 'mv {}/* "$(dirname {})"' \;
注記.
: 隠しファイル(名前が で始まるもの)は移動しません。
答え2
find /path/to -type f -execdir mv {} .. \;