ディレクトリからファイルを1つ上のレベルに移動する

ディレクトリからファイルを1つ上のレベルに移動する

複数のサブフォルダーを含むファイル構造があり、特定の文字列 ("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 {} .. \;

関連情報