Odpowiedzi:
Nie sądzę, aby twoje pliki zostały utracone; tak powinno się stać:
Załóżmy następującą strukturę (katalogi oznaczone przez /
)
.
|-- a/
| |-- a1
| |-- a2
| |-- a3
| `-- a4
|-- b/
| |-- b1
| |-- b2
| |-- b3
| `-- b4
|-- c/
`-- d/
|-- d1/
| `-- foo
|-- d2/
| `-- foo
|-- d3/
| `-- foo
`-- d4/
Najpierw pamiętaj, że z Un * x nie mv
rozwija symboli wieloznacznych, ale shell
:
mv ./*/* .
to zostanie rozwinięte
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 .
i mv zrobi to, co chcesz, ponieważ celem (tj. Ostatnim argumentem) jest katalog. Wszystko (tj. Wszystkie pliki / katalogi podane jako argumenty oprócz ostatniego) jest przenoszone do bieżącego dir ( .
).mv ./*/* this_is_a_file
który zostanie rozwinięty do, 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
a mv odmówi zrobienia czegokolwiek z mv: target „this_is_a_file“ is not a directory
. Nic nie zostanie zastąpione ani przeniesione.Teraz, na twoje polecenie: mv ./*/*
zostanie rozwinięty do 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
. Jak widać w moim przykładzie, zdarza się, że ostatnim argumentem jest katalog, który jest odpowiedni dla mv i wszystko się w nim przenosi - i kończysz na tym drzewie:
.
|-- a/
|-- b/
|-- c/
`-- d/
`-- d4/
|-- a1
|-- a2
|-- a3
|-- a4
|-- b1
|-- b2
|-- b3
|-- b4
|-- d1/
| `-- foo
|-- d2/
| `-- foo
`-- d3/
`-- foo
Przypuszczam, że miałeś podobny scenariusz i dlatego uważam, że twoje pliki nie zniknęły, ale zostały przeniesione gdzieś głębiej w hierarchię.
Jeśli najpierw wykonałeś kopię zapasową, przywróć ją z kopii zapasowej. W przeciwnym razie wypróbuj narzędzie takie jak NTFS Undelete; prawie na pewno nie odzyskasz wszystkiego, ale prawdopodobnie odzyskasz większość rzeczy.