サブディレクトリを見つけて新しい親ディレクトリに再構成する

サブディレクトリを見つけて新しい親ディレクトリに再構成する

次のフォルダ構造があります。

/Folder1/Folder2/output/0653/3547/0112945601/ 
/Folder1/Folder2/output/0653/3547/0112945602/

5番目のサブフォルダのみが変更されました。

5番目のサブフォルダをすべて一覧表示し、次のように再構成したいと思います。

/Folder1/Folder2/output01/0653/3547/0112945601/
/Folder1/Folder2/output02/0653/3547/0112945602/ 
/Folder1/Folder2/output03/0653/3547/0112945603/ 
...
/Folder1/Folder2/output<nn>/0653/3547/01129456<nn>/ 

10個のサブフォルダがある場合、このロジックによれば10個の出力フォルダが必要です。

使ってみよう

find -maxdepth 5 -type d 

whileループに入れましたが、5番目のサブフォルダだけを処理することはできません。

私は何ができると思いますか?

ベストアンサー1

for dir in Folder1/Folder2/output/*/*/*; do
    suffix=${dir:(-2)}
    subdir="$(cut -d '/' -f 4- <<<$dir)"
    newdir="Folder1/Folder2/output${suffix}/${subdir}"
    echo mkdir -p "$newdir"
    echo mv "$dir"/* "$newdir"/
done

練習を実行した後に自分に合ったコマンドを生成するように見える場合は、ドアを削除してecho実際にファイルを移動してください。

おすすめ記事