加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何从Linux上的目录中删除所有内容

发布时间:2020-12-13 16:56:21 所属栏目:Linux 来源:网络整理
导读:如何从 Linux上的当前或指定目录中删除所有内容? 几种方法: rm -fr * rm -fr dirname / * 不起作用 – 它会留下隐藏文件 – 以点开头的文件,以及当前目录中以短划线开头的文件,并且不会使用太多文件 rm -fr – * rm -fr – dirname / * 不起作用 – 它将保
如何从 Linux上的当前或指定目录中删除所有内容?

几种方法:

> rm -fr *
rm -fr dirname / *
不起作用 – 它会留下隐藏文件 – 以点开头的文件,以及当前目录中以短划线开头的文件,并且不会使用太多文件
> rm -fr – *
rm -fr – dirname / *
不起作用 – 它将保留隐藏文件,并且不能用于太多文件
> rm -fr – *.*
rm -fr – dirname / * dirname /.*
不要尝试这个 – 它也会删除父目录,因为“..”也以“.”开头.
> rm -fr *.?? *
rm -fr dirname / * dirname /.??*
不起作用 – 它将保留“.a”,“.b”等文件,并且不会使用太多文件
> find -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -fr
find dirname -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -fr
据我所知,正确但不简单.
>找-delete
找到dirname -delete
AFAIK更正当前目录,但与指定目录一起使用也将删除该目录.
> find -mindepth 1 -delete
找到dirname -mindeph 1 -delete
AFAIK正确,但这是最简单的方法吗?

解决方法

rm -fr *.*
至少GNU rm可以正常工作,因为它有特殊的代码来排除“.”和“……”
$id
uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
$cd /tmp
$mkdir rmtest
$cd rmtest
$touch .test
$ls -la
total 8
drwxr-xr-x 2 nobody nogroup 4096 2009-08-19 15:37 .
drwxrwxrwt 7 root   root    4096 2009-08-19 15:37 ..
-rw-r--r-- 1 nobody nogroup    0 2009-08-19 15:37 .test
$rm -rf .*
rm: cannot remove `.' or `..'
rm: cannot remove `.' or `..'
$ls -la
total 8
drwxr-xr-x 2 nobody nogroup 4096 2009-08-19 15:37 .
drwxrwxrwt 7 root   root    4096 2009-08-19 15:37 ..
$

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/remove.c#n440

FreeBSD rm手册页说“尝试删除文件/,.或..是一个错误”,所以如果指定强制标志来忽略错误,它也可能在那里工作.

http://www.freebsd.org/cgi/man.cgi?query=rm&apropos=0&sektion=0&manpath=FreeBSD+7.2-RELEASE&format=html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读