我有一个下面的目录(前)。我想删除子文件夹并将文件移动到文件夹(后)。我怎样才能将其存档?谢谢
前
Folder
|-----Sub-folder1
| |------ fileA.txt
| |------ fileB.txt
|-----Sub-folder2
|------ fileC.txt
|------ fileD.txt
后
Folder
|------ fileA.txt
|------ fileB.txt
|------ fileC.txt
|------ fileD.txt
答案1
你可以这样做
mv **/* .
注意:这会覆盖同名文件
shopt -s globstar
正如卡西莫多指出的那样,这需要:
如果设置,路径名扩展上下文中使用的模式 ** 将匹配所有文件以及零个或多个目录和子目录。如果模式后跟 /,则仅目录和子目录匹配。
答案2
首先将子文件夹中的所有文件移动到当前目录:
find . -type f -exec mv {} . \;
然后删除子目录
find . -type d -delete
注意:这会覆盖同名文件