Como excluir com segurança um diretório regular que contenha vários instantâneos btrfs dentro dele?

0

Eu tenho um diretório regular que contém diretamente abaixo dele vários instantâneos btrfs. É seguro fazer um rm -rf no diretório pai ou preciso primeiro fazer um btrfs subvolume delete SUBVOL em cada um dos instantâneos antes de remover o diretório pai?

    
por user779159 29.01.2016 / 13:47

2 respostas

2

rm -rf não é inseguro, por isso, vá em frente e execute-o. No entanto, não funcionará completamente. Por algum motivo, um subvolume Btrfs vazio não pode ser removido com a chamada do sistema rmdir(2) .

rm -rf removerá todo o conteúdo de todos os subvolumes (arquivos regulares, etc ...), mas os próprios subvolumes vazios, bem como os diretórios pai de todos esses subvolumes permanecerão. Você terá que excluir aqueles com btrfs subvolume delete e, em seguida, executar rm -rf novamente para cuidar de todos os diretórios de não subvolume que agora estão vazios e que não puderam ser excluídos anteriormente.

Você provavelmente sabe que excluir um subvolume com btrfs subvolume delete é muito mais rápido do que excluir todo o seu conteúdo. Então, se você sabe de antemão que a árvore de diretórios que você está prestes a rm -rf tem subvolumes, você pode economizar um pouco de tempo e trabalho colocando btrfs subvolume delete 'primeiro, então executando rm -rf (que funcionará completamente) ) depois disso.

    
por 29.01.2016 / 16:24
1

Você pode usar btrfs-rm .

Eu o uso em uma instalação do docker em execução no btrfs, para limpar todo o diretório do docker regularmente. Use a seu próprio risco, mas funciona para mim (TM).

sudo ./btrfs-rm  /var/lib/docker/*   # create clean empty dir for docker

Download: link

    
por 09.07.2017 / 10:56