이름에 특수 문자가 포함된 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
...

하나를 제거해 보세요:

$ 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

파일 이름을 이스케이프하는 다양한 조합을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 목록 에 하나가 있는데 IDID별로 스냅샷을 삭제할 수 없는 것 같습니다. 이름에 특수 문자가 포함된 스냅샷을 삭제하는 방법에 대한 아이디어가 있습니까?

답변1

문제는 문자(특수 여부)와 관련이 없습니다. 다음은 실패한 명령입니다.

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'

당신이 한때 있던 곳에는 어디에 delete있었습니까 snapshot? delete이제 하위 명령입니다.

관련 정보