我遇到过这样的情况:我必须从多个位置清理超过 7 天的文件,如下所示。
/home/user1/Out/vendor
/home/user2/Out/vendor
/home/user3/Out/vendor
/home/user4/Out/vendor
︙
/home/usern/Out/vendor
有人可以告诉我如何在不删除文件夹的情况下实现这一目标吗?我想从文本文件中调用用户。
答案1
中描述的技术删除早于X 天+ 将为您工作:
find /path/to/directory/ -mtime +7 -delete
但它遗漏了你的问题的几个部分。
...来自多个地点...
您可以为单个命令指定多个起点
find
。做查找 /home/user1/Out/vendor /home/user2/Out/vendor /home/user3/Out/vendor /home/user4/Out/vendor … /home/usern/Out/vendor -mtime +7 -删除
或者查找 /home/user1/Out/供应商 /home/user2/Out/供应商 /home/user3/Out/供应商 \ /home/user4/Out/vendor … /home/usern/Out/vendor -mtime +7 -删除
为了可读性。但您不必像这样显式列出所有目录。如果你是字面上地处理
user1
,user2
, ..., , (其中usern
n
是一个数字),你可以做查找 /home/user{1,2,3,4,…,n}/Out/vendor -mtime +7 -删除
甚至查找/home/用户{1..n}/Out/vendor -mtime +7 -删除
(字面上使用两个点(.
),又名 bash 中的句号或句号)。但我猜你可能并没有真正处理
user1
,user2
, ..., ;您的用户可能有usern
名称。 但同样的原则也适用;你可以做查找 /home/{用户1,用户2,用户3,用户4,…,用户n}/Out/vendor -mtime +7 -删除
例如,查找 /home/{alice,bob,cathy,david,…,nathan}/Out/vendor -mtime +7 -delete
甚至找到 ~{alice,bob,cathy,david,…,nathan}/Out/vendor -mtime +7 -delete
...如何在不删除文件夹的情况下实现这一目标?
只需
-type f
在命令中添加:查找 /home/{用户1,用户2,用户3,用户4,…,用户n}/出/供应商-f型-mtime +7 -删除