
Percebi que posso realmente excluir com Shift (ou seja, não vai para a Lixeira) um vídeo que está sendo reproduzido no momento, e ele ainda continua sendo reproduzido, mesmo que não haja nenhuma referência nomeada a ele em nautilus
ou ls
(terminal).
O espaço em disco é liberado normalmente quando o player termina o vídeo?
Presumo que seja um comportamento normal, mas certamente é uma experiência nova para mim (já que isso simplesmente não era possível no Windows).
Responder1
Embora você o tenha excluído, o arquivo ainda está em uso porque ele está aberto no seu player. Depois de fechar o reprodutor de mídia, ele liberará o controle dos dados do arquivo e, portanto, será excluído.
Você pode verificar isso com o lsof
comando, que lista os arquivos abertos. Se você executar lsof, seu arquivo de filme deverá ser listado como aberto pelo player, mas terá "DEL" próximo a ele, o que significa que foi excluído mesmo que ainda esteja aberto.
Na verdade, tudo isso é útil e significaria que você poderia realmente recuperar arquivos abertos que excluiu, embora provavelmente seja melhor deixar isso para outra questão :)
Isso acontece porque (pelo que entendi) os arquivos consistem nos próprios dados e identificadores (localização no sistema de arquivos) do arquivo. Normalmente você tem apenas um identificador para um arquivo, mas pode criar outros usando o ln
comando para criar um link físico. Isso cria o que parece ser uma cópia idêntica do seu arquivo, mas na verdade apenas adiciona outro identificador - para que você não use o dobro do espaço em disco. Você pode verificar isso observando o inode dos dois arquivos - isso informa onde os dados realmente estão.
Então, por exemplo, em uma janela de terminal:
ln existing_movie.avi movie_hardlink.avi
ls -i
O argumento -i para ls mostra as informações do inode dos arquivos - eles devem ser idênticos.
Quando você exclui um desses arquivos, os dados permanecerão porque o outro ainda mantém um identificador para o inode. Depois de excluir o segundo arquivo, o inode não possui identificadores/referências restantes e, portanto, é excluído/marcado como espaço não utilizado. Isso é diretamente análogo ao caso em que seu player está com o filme aberto, exceto que o segundo identificador aqui está dentro do programa em execução, e não em um segundo arquivo no sistema de arquivos.
Responder2
lerhttp://linuxgazette.net/105/pitcher.html, você entenderá o porquê (e aprenderá a diferença entre links físicos e virtuais)