2011-11-28 99 views
0

子目录在我的Linux机器,我有这样的目录树:查找与find命令

rootDir 
|--123456789 
| |-- test 
| |-- live 
| 
|--234456789 
| |-- live 
| 
|--454354334 
    |-- test 

而且我需要找到具有两个目录(“测试”所有顶级目录和“直播“),然后删除”测试“一个。如果可能的话,我想用单行命令完成此操作。

+0

所以,我想你已经尝试过这样做,并陷入某个地方。你确切的问题是什么? – Miquel

+0

'找。 -maxdepth 2 -name“test”-exec rm -rf {} \;'将删除当前目录中名为test的所有dir以及两个级别下的问题...其中一个必须查找这两个dir的部分是(对我来说)难以想象。当你问这些问题时,总是说出你所尝试过的。 –

+0

感谢您的提示!我知道如何使用find命令删除所有这些“测试”目录,但是我的问题是,我必须仅在具有“测试”和“活动”的目录中删除它们。所以简单的一个班轮似乎太复杂了。我试图用管道来做,但没有成功。 –

回答

3
find <directory_name> -type d -exec sh -c "cd {} && [ -d live ] && [ -d test ] && echo \"Deleting test from {}\" && rm -rvi test " {} \; 

echo是可选的。 vi选项添加到rm使其成为详细&交互
当你说删除测试之一我假设只有测试目录。
但是,如果你想删除包含父目录都然后尝试

find <directory_name> -type d -exec sh -c "cd {} && [ -d live ] && [ -d test ] && cd ../ && echo \"Deleting {}\" && rm -rvi {} " {} \; 

希望这有助于!

+0

感谢您的回答! find -maxdepth 1 -type d -exec sh -c“cd {} && [-d test] && [-d live] && rm -rvf test”{ } \; –