查找+如何删除仅存在于特定文件夹中的文件

查找+如何删除仅存在于特定文件夹中的文件

要删除文件夹下的文件,我们可以使用以下方法查找

find /home -type f -delete

但如何仅递归删除临时文件夹下存在的文件?

假设我们有以下临时路径示例

/home/bla/bla/temp
/home/test/temp
/home/subf/subf/subf/temp
.
.
.
/home/1/temp

如何更改查找语法以仅删除temp目录下的文件

目标是使用 find 命令仅匹配临时文件夹并删除临时目录下的文件

答案1

 find /home -type f -delete

不删除文件,它删除了常规文件仅,所有其他类型的文件除外,包括 fifo、设备、目录、符号链接、套接字等。

如果目的是删除除 类型之外的所有文件目录,即仅保留裸露的目录树,您可以使用! -type d它来代替-type f.

要删除在名为 的任何目录中或之下找到的所有非目录文件temp,您可以执行以下操作:

LC_ALL=C find /home -path '*/temp/*' ! -type d -delete

答案2

也许您可以删除临时文件夹并重新创建它们:

function delete-and-recreate() {
    rm -r $1
    mkdir $1
}

delete-and-recreate $(find . -name temp -type d)

相关内容