Answers:
要删除隐藏文件,您必须指定:
rm -r images/* images/.*
对于其glob包括.
和的shell ..
,这将导致类似的错误
rm: cannot remove `.' directory `images/.'
rm: cannot remove `..' directory `images/..'
但是它将删除隐藏文件。
一种没有错误消息的方法是使用具有最小深度的查找/删除。这是非常恰当的。
find images -mindepth 1 -delete
您的发现可能缺少-mindepth
或-delete
谓词,在这种情况下,您可以这样做:
find images/. ! -name . -prune -exec rm -rf {} +
要删除目录中的所有文件和目录(包括隐藏的文件和目录),可以尝试以下操作:
用于ls -Ab
匹配所有文件/目录
cd dir_name && rm -rf `ls -Ab`
用于find
匹配所有文件/目录
find dir_name -mindepth 1 -delete
或者,如果您find
不支持-delete
:
find dir_name -mindepth 1 -exec rm -rf {}
删除文件夹,然后重新创建
rm -rf dir_name && mkdir dir_name
猛烈地
shopt -s dotglob
rm -rf dir_name/*
rm -rf *
如果您不了解目录中的文件,则like这样的命令并不安全,因为以-
(连字符)开头的文件将被解释为rm
标志...
rm -rf ./* ./.*
rm的语法是:
rm [OPTION]... FILE...
因此,您必须明确声明适当的路径,例如
rm -r sub_dir/
您可以使用以下命令删除目录:
sudo rm -r directoryname1/2/3/*
3 / *之后将删除整个目录。
示例sudo rm -r下载/歌曲/ *
它将删除其中的所有文件Downloads/song
。
这对我来说非常有效,每次都测试了几种变体。
从包含图像目录的目录。
rm -frd ./images/*
之前:
images/
|_ header.png
|_ footer.png
|_ subdir/
后:
images/
mkdir images/.somedir
; touch images/.somefile
)
要删除当前目录中的所有文件和子目录,包括隐藏的文件和子目录,而不会出现错误消息:
rm -rf .[^.] .??* *
或者,从父目录:
rm -rf images/.[^.] images/.??* images/*
rm -Rf
的所有文件和目录。