![删除子文件夹而不删除文件](https://linux22.com/image/181018/%E5%88%A0%E9%99%A4%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E8%80%8C%E4%B8%8D%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6.png)
我有一个下面的目录(前)。我想删除子文件夹并将文件移动到文件夹(后)。我怎样才能将其存档?谢谢
前
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
注意:这会覆盖同名文件