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.
Eu fiz algo estúpido em um servidor linux remoto:
/some/directory
for dir in $(ls | grep "a_pattern"); do mv $d/* ./my_subdirectory; done
/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?
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.
Tags mv etc wildcards shell-script