cp arquivo grande para / dev / null para reduzir o tamanho para zero [closed]

0

Acabei de encontrar o conselho de que, se você quiser se livrar de um arquivo grande e um processo tiver o identificador de arquivos aberto, copie-o para / dev / null e seu tamanho será reduzido a zero.

Como isso funciona? Ou isso funciona mesmo?

Após uma pesquisa rápida, encontrei respostas conflitantes que variam de "Sim, isso funciona totalmente" até "Sua máquina inteira vai explodir". Alguém pode me esclarecer?

Eu encontrei a pergunta aqui: link

    
por user2393256 22.08.2016 / 15:41

2 respostas

6

Você interpretou mal o conselho, a idéia é não copiar o arquivo grande para /dev/null , que não o afetaria de maneira alguma, fora colocando-o no cache se houver espaço disponível.

cp bigfile /dev/null # useless

O conselho é não remover o arquivo, em seguida, copiar /dev/null para ele, pois ele manteria o inode original inalterado e não liberaria espaço em disco, desde que os processos tenham esse arquivo aberto.

O conselho é substituir o conteúdo do arquivo por /dev/null one, que, dado o fato de /dev/null size ser zero por design, está efetivamente truncando o arquivo para zero bytes:

cp /dev/null bigfile # works

cat /dev/null > bigfile # works

Pode-se notar que, se você usar um shell para executar esses comandos, não será necessário usar /dev/null , um redirecionamento vazio simples terá o mesmo efeito e será mais eficiente, cat /dev/null será um não. op de qualquer maneira.

: > bigfile # better

> bigfile  # even better if the shell used supports it
    
por 22.08.2016 / 17:16
-1

Resposta curta é não, não funciona.

Há muitos gostos de unix no exterior, pode ser que alguns isso funcione, você pode fornecer um link?

Agora, você pode testá-lo:

  1. abra dois terminais no seu sistema.
  2. copie para um usuário não raiz um arquivo grande (como /var/log/messages )
  3. vi isso ( vi messages ) no primeiro terminal.
  4. cp messages /dev/null no outro.
  5. feche o vi no primeiro.

messages ainda deve estar lá.

(vi não é um bom candidato, se você remover arquivo, ( rm messages ) arquivo será removido (pelo menos no Ubuntu 16.04), você pode reescrevê-lo a partir do vi (usando w mas arquivo será lido a partir de .messages.swp no diretório atual)

    
por 22.08.2016 / 16:14