usando o comando cp sem o operando de destino no diretório grande não gera erros e usa espaço em disco

2

Um pouco estranho aqui

Eu estava tentando copiar dados de um diretório para outro e deixei o operando de destino do cp. Veja o comando

root@server:/home/pp/test1# cp -r ../dhcppc0/*

O comando foi executado por mais de uma hora, pois o diretório de origem continha mais de 135 GB de dados e vários diretórios.

Eu monitorei isso e observei o disco disponível no sistema descer e deixá-lo durante a noite. De manhã, notei que a sessão para o servidor tinha expirado, percebi que o espaço em disco disponível havia caído ainda mais, mas os arquivos / diretórios não foram copiados.

Em uma inspeção mais próxima, vi meu comando cp e notei que tinha esquecido de colocar um '.' como o segundo operando para direcionar a cópia para o meu diretório atual, e ele não deu um erro?

Então, minha pergunta é: o que e onde está todo o espaço em disco? e como recuperá-lo? Existe algum espaço temporário em algum lugar do sistema que eu possa limpar?

O diretório de origem contém cerca de 135 GB de dados em cerca de 1 milhão de arquivos.

Qualquer ajuda seria muito apreciada!

    
por John Ferlatte 30.10.2014 / 17:54

1 resposta

1

% bl0ck_qu0te%

Por que deveria? Em cp -r ../dhcppc0/* , cp não está processando ../dhcppc0/* . O shell expande ../dhcppc0/* e passa o conteúdo expandido para cp . Portanto, se ele for expandido em ../dhcppc0/bar , ../dhcppc0/baz e ../dhcppc0/foo , o comando expandido será:

cp -r ../dhcppc0/bar ../dhcppc0/baz ../dhcppc0/foo

E se foo for um diretório, cp ficará feliz em copiar todo o conteúdo dos outros diretórios para foo .

% bl0ck_qu0te%

Faça echo ../dhcppc0/* , veja o último nome que aparece e inspecione o diretório.

É por isso que, ao copiar diretórios ou usar curingas, sempre use o -t paramater:

cp -t . ../dhcppc0/*
# or cp --target-directory . ../dhcppc0/*

E note que você perderá quaisquer pastas de pontos e arquivos de pontos se usar * . Você não precisa usá-lo, então é melhor simplesmente fazer:

cp -t . ../dhcppc0/
    
por muru 30.10.2014 / 20:36