我刚刚发现rm -f
无法从包含只读目录的树中删除文件。是否有其他命令可以执行此操作?删除是由 rnapshot 触发的,我考虑为“cmd_rm”提供不同的值。
背景:我正在使用rnapshot
,在删除文件夹 _delete.XXXXX 时会发出大量错误“权限被拒绝”。错误恰好发生在只读目录中的文件上。这些目录是由 git-annex 自动创建的,因此我不能简单地授予它们写入权限。
例子:
在只读目录中设置两个具有不同写权限的文件:
$ mkdir mydir $ touch mydir/test1 $ touch mydir/test2 $ chmod aw mydir/test1 $ chmod aw mydir/
尝试删除以下内容:
$ rm -r mydir/ rm:进入写保护目录‘mydir’?y rm:删除写保护的常规空文件“mydir/test1”?y rm:无法删除“mydir/test1”:权限被拒绝 rm:无法删除“mydir/test2”:权限被拒绝
我甚至无法直接删除文件:
$ rm -rf mydir/test2 rm:无法删除“mydir/test2”:权限被拒绝
在删除之前搜索只读目录并使它们可写:
(查找 /path/to/remove -type d -not -writable | xargs chmod u+w)&& rm -rf /path/to/remove
但是对于一个相当简单的任务来说,这个命令似乎真的很复杂。这真的是唯一的解决方案吗?我该如何告诉 rsnapshot 做这样的事情?
答案1
我无法发表评论,所以我在这里写下。
据我所知,只读就是只读,不是读写。
我猜你必须以读写方式挂载你的目录。