Por que a exclusão de arquivos no Ubuntu é lenta?

Por que a exclusão de arquivos no Ubuntu é lenta?

Eu li em uma postagem do stackoveflow que no Linux, quando excluímos um arquivo, ele não é realmente excluído, apenas o link da tabela de inode é removido para esse arquivo. Se for esse o caso, por que a exclusão não é uma operação de tempo constante?

Também fiz uma experiência: criei uma pasta com 1500 imagens e criei um objeto tar dessas imagens. O diretório e o arquivo tar são do mesmo tamanho. Os tempos para exclusão do objeto tar e do diretório de 1.500 imagens são os seguintes

Excluindo arquivo tar time rm test.tar:


real    0m0.024s
user    0m0.001s
sys     0m0.024s

Excluindo diretório:time rm -r test


real    0m0.219s
user    0m0.024s
sys     0m0.191s

Pelo que entendi, essa diferença de tempo se deve à
desvinculação de 1 arquivo e à desvinculação de 1.500 arquivos. Mas a exclusão do objeto tar não deveria ser 1500x mais rápida?

Responder1

Porque énãouma operação simples de "marcar um único inode excluído":https://www.slashroot.in/how-does-file-deletion-work-linux

Pelo menos na exclusão de arquivos ext4 é muito mais rápida do que em partições ext2/ext3 devido ao uso de extensões.

No caso de SSDs, a exclusão do arquivo pode ser mais lenta do que o necessário devido ao uso da opção "descartar", que informa ao seu SSD para descartar fisicamente todos os blocos pertencentes a um arquivo para prolongar a vida útil do seu SSD. É altamentenãoaconselhável desativá-lo.

informação relacionada