我正在尝试在4TB磁盘上搜索并删除旧的程序备份。它可能有超过500个实例用于各种用户等...该文件夹名为ACCOUNTS,它位于/ home / local / * / backups / Acc / ACCOUNTS,其中*是用户名。问题是最新的备份位于/ home / local / * / backups / Acc / Mon / ACCOUNTS中7天轮换。
我可以使用find来查找和删除所有ACCOUNTS实例,但这也会删除我想保留的实例。
那么如何搜索一个名为Accounts的文件夹,父文件夹调用Acc并将其删除,同时保留ACCOUNTS的所有其他实例?
我尝试find /home/local/ -type d -name "Acc/ACCOUNTS" -exec rm -rf {} \;
但这不起作用,因为它会认为正斜杠是名称的一部分并发出警告。
答案 0 :(得分:0)
rm -r /home/local/*/backups/Acc/ACCOUNTS
应该有效。或者,如果您有很多帐户,并且上面点击ARG_MAX
for f in /home/local/*/backups/Acc/ACCOUNTS; do rm -r "$f"; done
您只需执行echo home/local/*/backups/Acc/ACCOUNTS
如果由于某种原因你需要find
,你可以做很多不同的事情,可能最简单的就是使用-regex
find /home/local/ -type d -regex '.*/Acc/ACCOUNTS' -exec rm -rf {} \;
将-exec rm -rf {} \;
替换为-print
以进行测试。