为什么“rm -rf ./”不删除任何内容?

为什么“rm -rf ./”不删除任何内容?

该命令rm -rf ./不会在充满子目录和文件的目录中执行任何操作。为什么这样?不-r应该递归吗?

为了增加更多的混乱,它甚至打印一条错误消息,表明它正在遍历目录:

rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘./’

答案1

rm命令拒绝删除“.”目录姓名。如果您使用完整路径名,它应该递归删除目录,即rm -rf `pwd`‌.

如果该目录是当前目录,也可以删除该目录。

[testuser@testhost] /tmp$ mkdir ff

[testuser@testhost] /tmp$ cd ff

[testuser@testhost] /tmp/ff$ touch a b c

[testuser@testhost] /tmp/ff$ rm -rf ./
rm: cannot remove directory: ‘./’

[testuser@testhost] /tmp/ff$ ls
a  b  c

[testuser@testhost] /tmp/ff$ rm -rf /tmp/ff

[testuser@testhost] /tmp/ff$ ls

[testuser@testhost] /tmp/ff$ ls ../ff
ls: cannot access ../ff: No such file or directory

[testuser@testhost] /tmp/ff$ cd ..

[testuser@testhost] /tmp$ ls ff
ls: cannot access ff: No such file or directory

info rm

任何删除最后一个文件名部分为.' or..' 的文件的尝试都会被拒绝,且不会出现任何提示。

答案2

您无法删除当前目录,因为这样当前目录将变得无效。

首先,更改要删除的目录(例如cd ..),然后使用其完整或相对路径名删除所需的目录从外面

相关内容