Respostas:
Eu não acho que seus arquivos estão perdidos; isso deveria ter acontecido:
Assuma a seguinte estrutura (dirs marcados por /
)
.
|-- a/
| |-- a1
| |-- a2
| |-- a3
| `-- a4
|-- b/
| |-- b1
| |-- b2
| |-- b3
| `-- b4
|-- c/
`-- d/
|-- d1/
| `-- foo
|-- d2/
| `-- foo
|-- d3/
| `-- foo
`-- d4/
Primeiro, lembre-se que com Un * x não mv
expande os curingas, mas o shell
:
mv ./*/* .
que é expandido para mv /a/a1 ./a/a2 ./a/a3 ./a/a4 ./b/b1 ./b/b2 ./b/b3 ./b/b4 ./d/d1 ./d/d2 ./d/d3 ./d/d4 .
e mv vai fazer o que quiser, porque o alvo (ou seja, o próprio último argumento) é um diretório. Tudo (ou seja, todos os arquivos / diretórios fornecidos como argumentos exceto o último) é movido para o diretório atual ( .
). mv ./*/* this_is_a_file
que é expandido para mv /a/a1 ./a/a2 ./a/a3 ./a/a4 ./b/b1 ./b/b2 ./b/b3 ./b/b4 ./d/d1 ./d/d2 ./d/d3 ./d/d4 this_is_a_file
e mv recusa o fazer qualquer coisa com mv: target „this_is_a_file“ is not a directory
. Nada é sobrescrito ou movido. Agora, ao seu comando: mv ./*/*
é expandido para mv /a/a1 ./a/a2 ./a/a3 ./a/a4 ./b/b1 ./b/b2 ./b/b3 ./b/b4 ./d/d1 ./d/d2 ./d/d3 ./d/d4
. Como você pode ver no meu exemplo, acontece que o último argumento é um diretório, o que é bom para o mv e tudo é movido para ele - e você acaba com essa árvore:
.
|-- a/
|-- b/
|-- c/
`-- d/
`-- d4/
|-- a1
|-- a2
|-- a3
|-- a4
|-- b1
|-- b2
|-- b3
|-- b4
|-- d1/
| `-- foo
|-- d2/
| `-- foo
`-- d3/
`-- foo
Suponho que você tenha um cenário parecido e é por isso que acredito que seus arquivos não desapareceram, mas mudou-se simplesmente para um nível mais profundo da hierarquia.
Se você fez um backup primeiro, restaure a partir do backup. Caso contrário, tente uma ferramenta como NTFS Undelete; você quase certamente não receberá tudo de volta, mas você provavelmente recuperará a maioria das coisas.