gpt4 book ai didi

unix - 'find -delete' 和 'rm -rf' 之间的区别?

转载 作者:行者123 更新时间:2023-12-02 07:47:47 35 4
gpt4 key购买 nike

我想递归地从特定目录中删除文件。所以,我用了

find . -wholename "*.txt" -delete

我们还可以使用删除文件

rm -rf *.txt

使用rmfind删除文件有什么区别?

最佳答案

查找 . -name abd.txt -delete 尝试删除 目录树中名为 abd.txt 的所有文件。

查找 . -wholename abd.txt -delete 尝试删除 目录树中某处完整路径名为 abd.txt 的所有文件。

这样的文件永远不会存在:当使用 find . 时,找到的所有文件的完整路径名都将以 ./ 开头,因此即使当前目录中名为abd.txt 将具有路径 ./abd.txt,并且它不会匹配。

查找 . -wholename ./abd.txt -delete删除当前目录中名为abd.txt的文件。

find -wholename ./abd.txt -delete 也会执行相同的操作。

如果 abd.txt 是非空目录,删除将会失败。

(我刚刚使用 GNU find 4.6.0 尝试了上述操作;其他版本的行为可能有所不同。)

rm -rf abd.txt 还会尝试删除当前目录中的 abd.txt,如果是非空目录,则会删除它,以及所有内容就在其中。

要使用 find 执行此操作,您可以使用

查找 . -深度\(-全名./abd.txt -o -全名./abd.txt/\*\)-删除

关于unix - 'find -delete' 和 'rm -rf' 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292146/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com