Eu acidentalmente copiei parte do diretório / * para / some /, como devo corrigir o meu erro?

0

Eu fiz algo estúpido em um servidor linux remoto:

  1. meu diretório de trabalho era /some/directory
  2. eu corri for dir in $(ls | grep "a_pattern"); do mv $d/* ./my_subdirectory; done
  3. Agora, /some/directory/my_subdirectory contém itens como bin boot dev e home , que definitivamente não devem estar lá

Sinta-se à vontade para apontar o quão estúpido era o # 2. Se eu entendi meu erro corretamente, $d estava vazio (eu quis digitar $dir - talvez até com essa correção seria um comando mal feito, mas eu deveria fechar esse parênteses), então basicamente o comando que eu corri foi mv /* ./my_subdirectory .

Quando percebi o que fiz, apertei ctrl-c ctrl-c, então o comando foi interrompido antes de terminar.

Minha pergunta tem duas partes: primeiro, o que devo fazer para corrigir isso? e segundo, meu comando realmente move as coisas de / , ou copiou-as?

Corri mv , espero que tenha movido as coisas e, no entanto, não vejo nada em ./my_subdirectory , que está faltando em / . Deixe-me saber se estou sendo claro aqui. Por exemplo, /some/directory/my_subdirectory/bin contém bash, cat, mount e mkdir, mas esses programas ainda estão presentes em /bin , como se fossem copiados e não movidos. Por que é que? Posso apagar com segurança tudo sob /some/directory/my_subdirectory , ou seria um erro terrível?

Seguindo a sugestão do tad nos comentários, aqui estão alguns resultados de find ./my_subdirectory -type f :

./my_subdirectory/bin/umount
./my_subdirectory/bin/date
./my_subdirectory/bin/sort
./my_subdirectory/bin/red
./my_subdirectory/bin/dumpkeys
./my_subdirectory/bin/sleep
./my_subdirectory/bin/readlink
./my_subdirectory/bin/mv
...
./my_subdirectory/etc/security/pam_env.conf
./my_subdirectory/etc/security/chroot.conf
./my_subdirectory/etc/security/access.conf
./my_subdirectory/etc/security/namespace.init
./my_subdirectory/etc/security/group.conf
./my_subdirectory/etc/security/console.handlers

Eu verifiquei e esses arquivos ainda existem em /etc e /bin . Quando executo diff ./my_subdirectory/etc /etc , recebo subdiretórios comuns, alguns que estão apenas em /etc , mas nada que esteja apenas em ./my_subdirectory/etc . Então parece que as coisas foram copiadas ao invés de movidas. Isso é de se esperar, uma vez que eu não executei o comando mv como sudo?

    
por Adrian 08.06.2016 / 17:33

1 resposta

2

Supondo que você não executou esse comando como root, presumo que os dados foram copiados. Uma maneira rápida de saber seria executar o diff para comparar os diretórios.

    
por 08.06.2016 / 18:04