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

bash – 为什么通配符在`sudo rm`语句中不起作用?

发布时间:2020-12-16 01:50:41 所属栏目:安全 来源:网络整理
导读:我试图删除日志目录中的所有文件,并在CentOS 6.5上使用默认的bash shell [lei@ids7gueywjZ /]$sudo ls -al /var/log/jenkins/total 1541512drwxr-x--- 2 jenkins jenkins 4096 Jul 22 09:52 .drwxr-xr-x. 10 root root 4096 Jul 14 21:27 ..-rw-r--r-- 1 jen
我试图删除日志目录中的所有文件,并在CentOS 6.5上使用默认的bash shell

[lei@ids7gueywjZ /]$sudo ls -al /var/log/jenkins/
total 1541512
drwxr-x---   2 jenkins jenkins       4096 Jul 22 09:52 .
drwxr-xr-x. 10 root    root          4096 Jul 14 21:27 ..
-rw-r--r--   1 jenkins jenkins      31483 Jul 22 17:07 jenkins.log
-rw-r--r--   1 jenkins jenkins 1073606656 Jul 18 03:16 jenkins.log-20150718
-rw-r--r--   1 jenkins jenkins  504815011 Jul 19 03:30 jenkins.log-20150719.gz
[lei@ids7gueywjZ /]$sudo rm -r /var/log/jenkins/*
rm: cannot remove `/var/log/jenkins/*': No such file or directory

我不明白为什么rm -r / var / log / jenkins / *不起作用?我缺少一些默认的shell配置吗?

解决方法

通配符扩展由shell完成,而不是由rm完成.

shell没有sudo权限,只有rm才有.

因此,由于shell没有读取/ var / log / jenkins的权限,所以没有扩展,并且rm尝试删除不存在的文件(不是通配符)/ var / log / jenkins / *.

要解决这个问题,你需要一个具有sudo权限的shell来执行你的rm:

sudo sh -c 'rm /var/log/jenkins/*'

(编辑:李大同)

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

    推荐文章
      热点阅读