次のファイル階層があります。
dir
├── dirA
│ └── snapshot
│ └── subdir1
│ └── file1
└── dirB
└── snapshot
└── subdir2
└── file2
単一のコマンドで、各スナップショット/サブディレクトリからスナップショットの親ディレクトリにファイルを移動したいと思います。それは次のとおりです。
dir
├── dirA
│ └── file1
│ └── snapshot
│ └── subdir1
└── dirB
└── file2
└── snapshot
└── subdir2
mv dir/*/snapshot/*/* ../../
私はこれを試しましたが、ターゲット../../
部分が作業ディレクトリに相対的であるため、明らかに動作しません。
bashコマンドを使用できますか(私はbashスクリプトを1行書いたことがないので)?
答え1
@Don_Christの敏感な観察に基づいて、この答えはサブシェルを保存するように編集されました。
for i in dir/*/snapshot; do
mv "$i"/*/* "$i"/..
done