在我的linux机器上,我有一个这样的目录树:
rootDir
|--123456789
| |-- test
| |-- live
|
|--234456789
| |-- live
|
|--454354334
|-- test
我需要找到所有包含两个目录(“test”和“live”)的顶级目录,然后删除“test”一个。如果可能的话,我想用单行命令来完成这个。
答案 0 :(得分:3)
find <directory_name> -type d -exec sh -c "cd {} && [ -d live ] && [ -d test ] && echo \"Deleting test from {}\" && rm -rvi test " {} \;
echo
是可选的。已将vi
个选项添加到rm
以使其更详细&amp;互动
当你说删除测试时我只假设测试目录
但是如果要删除包含两者的父目录,请尝试
find <directory_name> -type d -exec sh -c "cd {} && [ -d live ] && [ -d test ] && cd ../ && echo \"Deleting {}\" && rm -rvi {} " {} \;
希望这有帮助!