Btrfs

刪除名稱中包含特殊字元的 btrfs 快照

  • August 23, 2022

在使用 BTRFS 進行一些測試時,我使用名稱的時間戳(即包括特殊字元)創建了一些只讀快照。現在我無法刪除它們。

$ sudo btrfs subvolume list /test
...
ID 387 gen 289 top level 5 path snapshots/2022-08-22 20:41:00
ID 388 gen 293 top level 5 path snapshots/2022-08-23 07:55:00
...

試圖刪除一個:

$ btrfs subvolume snapshot delete /test/snapshots/'2022-08-23 07:55:00'
ERROR: Could not statfs: No such file or directory

請注意,我可以獲得此文件的統計資訊,並且快照功能齊全:

$ stat /test/snapshots/'2022-08-23 07:55:00'
 File: /test/snapshots/2022-08-23 07:55:00
 Size: 50          Blocks: 0          IO Block: 4096   directory
Device: 51h/81d Inode: 256         Links: 1
Access: (0755/drwxr-xr-x)  Uid: ( 1000/     que)   Gid: ( 1000/     que)
Access: 2022-08-23 00:00:04.349592125 -0500
Modify: 2022-08-23 00:00:02.257592094 -0500
Change: 2022-08-23 00:00:02.257592094 -0500
Birth: 2022-08-16 12:14:14.154459488 -0500

我嘗試了各種組合來轉義文件名,但似乎沒有任何效果。我看到有一個ID列表,但似乎我無法通過 id 刪除快照。關於如何刪除快照名稱中帶有特殊字元的快照的任何想法?

這個問題與字元(特殊與否)無關。這是失敗的命令:

btrfs subvolume snapshot delete /test/snapshots/'2022-08-23 07:55:00'

btrfs subvolume snapshot … 創建快照。子命令是snapshot. delete這裡不是子命令,它是snapshot.

您的命令嘗試從delete. 遺憾No such file or directory的是在這種情況下含糊不清。如果這個錯誤很詳細並告訴你它的意思是“文件或目錄”,那就更好了delete。這會給你一個delete被解釋為路徑名的提示,而不是子命令。那好吧。

刪除您要刪除的內容的正確語法是:

btrfs subvolume delete /test/snapshots/'2022-08-23 07:55:00'

wheredelete放在你有的地方snapshotdelete現在是一個子命令。

引用自:https://unix.stackexchange.com/questions/714579