在linux中,我有一组文件夹,它们都包含相同的子文件夹结构。 E.g。
FolderA / X / Y / Z / FILE1.TXT
FolderA / X / Y / Z / FILE2.TXT
FolderB中/ X / Y / Z / FILE1.TXT
FolderC / X / Y / Z / FILE1.TXT
我想运行批处理来删除其中一个子文件夹,但保留所有文件和文件夹不变。例如。如果我要删除文件夹" y":
FolderA / X / Z / FILE1.TXT
FolderA / X / Z / FILE2.TXT
FolderB中/ X / Z / FILE1.TXT
FolderC / X / Z / FILE1.TXT
我已尝试将find和mv的某些组合放在一起,但无法正确使用
答案 0 :(得分:1)
find . -name y -type d -exec sh -c '
for d; do echo mv "$d"/* "$d"/..; echo rmdir "$d"; done' _ {} +
如果结果与您期望的结果相符,请删除echo
。
答案 1 :(得分:0)
考虑到您要删除其中一个子文件夹,但保留所有文件和文件夹不变,这是您可以执行的操作。它不是一个精确的解决方案,可能适合你的一些技巧。我在电脑上做了很多次。
您可以递归地将子文件夹的内容复制到它的父文件夹,然后遍历到父目录,最后递归删除子文件夹。
$ cd path / to / SubFolder
$ cp -R * ..
$ cd ..
$ rm -rf SubFolder /
假设你有一个文件夹y,那么,
$ cd path/to/folder/y $ cp -R * .. $ cd .. $ rm -rf y/
运行批处理您可以使用find命令找出子文件夹的路径。
请注意,这个技巧可能会耗费大量时间。资源,如果文件夹中有很多文件夹。但那确实有用!