Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 查找并删除具有特定父文件夹的文件夹_Shell_Unix_Find_Directory - Fatal编程技术网

Shell 查找并删除具有特定父文件夹的文件夹

Shell 查找并删除具有特定父文件夹的文件夹,shell,unix,find,directory,Shell,Unix,Find,Directory,我正在尝试搜索和删除4TB磁盘上的旧程序备份。对于不同的用户,可能会有500多个这样的实例,等等。。。该文件夹称为ACCOUNTS,位于/home/local/*/backups/Acc/ACCOUNTS中,其中*是用户名。问题在于,最近的备份位于/home/local/*/backups/Acc/Mon/accounts中,用于7天轮换 我可以使用find查找和删除所有帐户实例,但这也会删除我想要保留的帐户实例 那么,如果要搜索一个名为Accounts的文件夹(其父文件夹为call Acc),

我正在尝试搜索和删除4TB磁盘上的旧程序备份。对于不同的用户,可能会有500多个这样的实例,等等。。。该文件夹称为ACCOUNTS,位于/home/local/*/backups/Acc/ACCOUNTS中,其中*是用户名。问题在于,最近的备份位于/home/local/*/backups/Acc/Mon/accounts中,用于7天轮换

我可以使用find查找和删除所有帐户实例,但这也会删除我想要保留的帐户实例

那么,如果要搜索一个名为Accounts的文件夹(其父文件夹为call Acc),并在保留所有其他帐户实例的同时将其删除,该如何进行呢

我尝试了find/home/local/-type d-name Acc/ACCOUNTS-exec rm-rf{};但这不会起作用,因为它会认为正斜杠是名称的一部分,并给出警告

rm -r /home/local/*/backups/Acc/ACCOUNTS  
应该有用。或者,如果你有很多账户,并且上面提到了ARG_MAX

您只需执行echo home/local/*/backups/Acc/ACCOUNTS,就可以测试它要删除的内容

如果出于某种原因需要查找,您可以做许多不同的事情,可能最简单的就是使用-regex

替换-exec rm-rf{}\;使用-打印进行测试

for f in /home/local/*/backups/Acc/ACCOUNTS; do rm -r "$f"; done
find /home/local/ -type d -regex '.*/Acc/ACCOUNTS' -exec rm -rf {} \;