名前に特殊文字を含むbtrfsスナップショットを削除する

名前に特殊文字を含むbtrfsスナップショットを削除する

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
...

1つを削除してみてください:

$ 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

ファイル名をエスケープするさまざまな組み合わせを試しましたが、何も機能しないようです。リストには1つありますが、IDIDごとにスナップショットを削除できないようです。名前に特殊文字を含むスナップショットを削除する方法についてのアイデアはありますか?

答え1

問題は文字(特殊かどうか)とは関係ありません。以下は失敗したコマンドです。

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

btrfs subvolume snapshot … 作るスナップ写真。サブコマンドはですsnapshotdeleteこれはサブコマンドではなくオペランドですsnapshot

コマンドはからスナップショットを作成しようとしますdelete。残念ながらNo such file or directory、この場合はあいまいです。エラーが冗長で、名前が「ファイルまたはディレクトリ」であることを意味すると言うのdeleteが良いでしょう。これにより、deleteサブコマンドではなくパス名として解釈されるプロンプトが表示されます。ああ、まあ。

削除したい項目を削除する正しい構文は次のとおりです。

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

あなたがかつていた場所にはどこにdeleteいましたかsnapshotdeleteこれでサブコマンドです。

関連情報