要删除文件夹下的文件,我们可以使用以下方法查找
find /home -type f -delete
但是如何仅递归删除临时文件夹下存在的文件?
假设我们有以下临时路径示例
/home/bla/bla/temp
/home/test/temp
/home/subf/subf/subf/temp
.
.
.
/home/1/temp
如何更改查找语法以仅删除temp
目录下的文件
目标是使用 find 命令以仅匹配临时文件夹并删除临时目录下的文件
要删除文件夹下的文件,我们可以使用以下方法查找
find /home -type f -delete
但是如何仅递归删除临时文件夹下存在的文件?
假设我们有以下临时路径示例
/home/bla/bla/temp
/home/test/temp
/home/subf/subf/subf/temp
.
.
.
/home/1/temp
如何更改查找语法以仅删除temp
目录下的文件
目标是使用 find 命令以仅匹配临时文件夹并删除临时目录下的文件
以下命令将在名为
temp
及以下的任何目录中查找常规文件/home
。要实际删除它们:
笔记:
默认情况下
find
不遵循符号链接。请参阅man 1 find
选项-L
和-H
(如果支持)-P
。-delete
不便携。如果您find
不支持-delete
,请使用-exec rm {} +
.-delete
更好,不仅因为它不会创建额外的过程。它更安全,因为它(至少-delete
在 GNU 中实现find
)消除了竞争条件,在这种条件下,有人可以通过将某个目录更改为符号链接来让您删除错误的文件,方法是在find
找到文件并将rm
其删除之间。我们的find
命令不遵循符号链接的事实在这一点上无关紧要。