rsnapshot:如何從樹中刪除所有文件,包括唯讀目錄

rsnapshot:如何從樹中刪除所有文件,包括唯讀目錄

我剛剛發現rm -f無法從樹中刪除文件,包括只讀目錄。有沒有替代指令可以做到這一點?刪除是由 rnapshot 觸發的,我考慮為“cmd_rm”提供不同的值。

背景:我正在使用rnapshot它在刪除資料夾 _delete.XXXXX 時發出大量“權限被拒絕”錯誤。這些錯誤恰好發生在唯讀目錄中的檔案上。這些目錄是由 git-annex 自動建立的,所以我不能簡單地給它們寫權限。

例子:

在唯讀目錄中設定兩個具有不同寫入權限的檔案:

$ mkdir 我的目錄
$ 觸碰 mydir/test1
$ 觸碰 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」:權限被拒絕

在刪除之前搜尋唯讀目錄並使它們可寫:

(find /path/to/remove -type d -not -writable | xargs chmod u+w) && rm -rf /path/to/remove

但該命令似乎確實涉及一項相當簡單的任務。這真的是唯一的解決方案嗎?我怎麼能告訴 rsnapshot 做這樣的事情?

答案1

我無法發表評論,所以我在這裡寫下來。

據我所知,只讀意味著只讀 - 期間。不讀寫。

我想你必須以讀寫方式掛載你的目錄。

相關內容