Shell 查找并删除具有特定父文件夹的文件夹
我正在尝试搜索和删除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{};但这不会起作用,因为它会认为正斜杠是名称的一部分,并给出警告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),
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 {} \;