今天遇到一个很恼火的问题,就是在维护TP6项目时,无法在Linux中删除原有的vendor文件夹,更新进去新的内容,因为composer新require的必要的内容,本想着讲原有的删掉,直接讲压缩包放上去,解压,简单暴力,万万没想到。。。
root@saas:/mnt/sites/saas# rm -rf vendor
rm: cannot remove 'xxxx': Operation not permitted
rm: cannot remove 'xxxx': Operation not permitted
rm: cannot remove 'xxxx': Operation not permitted
rm: cannot remove 'xxxx': Operation not permitted
....
//N++个
用lsattr命令来查看是否是系统添加了i属性
root@saas:/mnt/sites/saas# lsattr vendor
------i--------- XXX.php
//.....
移除i属性
root@saas:mnt/sites/saas# chattr -R -i vendor
递归比较暴力,但很有效,很速度。然后就可以使用
root@saas:/mnt/sites/saas# rm -rf vendor
一般来说,到这步就可以成功删除了,但是可但是,我遇到了另外的意外,那就是还不行!是的,还是无法删除!还是无法删除!还是无法删除!
Operation not permitted
这个提示再次见面,我在这里要说的就是这个,我这里是因为用了宝塔,没错,就是宝塔的防篡改
看那防护记录,就知道我是多么的努力删除它,移动它,覆盖它,然并卵 ,最后讲放篡改开关关闭,就成功更新了vendor,心中万千羊驼在奔腾,开这个防篡改还想更新成功,想想都笑死。
课外延伸阅读
Linux的chattr命令可改变存放在ext2文件系统上的文件或目录属性:
参数 | 说明 |
---|---|
a | 让文件或目录仅供附加用途 |
b | 不更新文件或目录的最后存取时间 |
c | 将文件或目录压缩后存放 |
d | 将文件或目录排除在倾倒操作之外 |
i | 不得任意更动文件或目录 |
s | 保密性删除文件或目录 |
S | 即时更新文件或目录 |
u | 预防以外删除 |
使用语法
chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]
说明:
参数 | 说明 |
---|---|
-R | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-V | 显示指令执行过程 |
-v<版本编号> | 设置文件或目录版本 |
+<属性> | 开启文件或目录的该项属性 |
-<属性> | 关闭文件或目录的该项属性 |
=<属性> | 指定文件或目录的该项属性 |
属性就是上面表格中的属性文章来源:https://www.toymoban.com/news/detail-812452.html
希望对您有所帮助吧文章来源地址https://www.toymoban.com/news/detail-812452.html
到了这里,关于Linux 删除文件提示:rm: cannot remove ‘XXXX‘: Operation not permitted 解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!