rsnapshot:如何从树中删除所有文件(包括只读目录)

rsnapshot:如何从树中删除所有文件(包括只读目录)

我刚刚发现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

我无法发表评论,所以我在这里写下。

据我所知,只读就是只读,不是读写。

我猜你必须以读写方式挂载你的目录。

相关内容