Bash-将所有文件从子目录移动到上一个文件夹

Bash-将所有文件从子目录移动到上一个文件夹,bash,move,Bash,Move,我想将所有文件从文件夹11/22移动到/volume1/TVPack/A 以及从文件夹33到/volume1/TVPack/B的所有文件 等 例如,向上移动两层 我使用的代码是 /volume1/TVPack/A/Folder1/Folder11/ --> files /volume1/TVPack/A/Folder2/Folder22/ --> files /volume1/TVPack/B/Folder3/Folder33/ --> files (the list goes

我想将所有文件从文件夹11/22移动到/volume1/TVPack/A 以及从文件夹33到/volume1/TVPack/B的所有文件 例如,向上移动两层

我使用的代码是

/volume1/TVPack/A/Folder1/Folder11/ --> files
/volume1/TVPack/A/Folder2/Folder22/ --> files
/volume1/TVPack/B/Folder3/Folder33/ --> files
(the list goes on)...
但这会将所有文件仅放在文件夹B中,而不是将各自的文件放在A中,将各自的文件放在B中

我在任务调度器上执行此操作,因此我认为我不能使用
mv*[^.]*


有人知道怎么做吗

使用
-execdir
,在执行命令之前,每个文件所在的目录都有一张cd

find /volume1/TVPack/*/ -type f -mindepth 3 -exec mv -- {} /volume1/TVPack/*/ \;
更好的方法是使用
+
而不是
\
以最小化
mv
命令的数量

find /volume1/TVPack/*/ -type f -mindepth 3 -execdir mv -- {} ../../ \;
find /volume1/TVPack/*/ -type f -mindepth 3 -execdir mv -t ../../ -- {} +