Antworten:
Ich glaube nicht, dass Ihre Dateien verloren gehen. das hätte passieren sollen:
Nehmen Sie die folgende Struktur an (Verzeichnisse markiert durch /
)
.
|-- a/
| |-- a1
| |-- a2
| |-- a3
| `-- a4
|-- b/
| |-- b1
| |-- b2
| |-- b3
| `-- b4
|-- c/
`-- d/
|-- d1/
| `-- foo
|-- d2/
| `-- foo
|-- d3/
| `-- foo
`-- d4/
Denken Sie zunächst daran, dass mit Un * x nicht mv
die Platzhalter erweitert werden, sondern shell
:
mv ./*/* .
dass erweitert wird zu
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 .
und mv wird tun , was Sie wollen, weil das Ziel (dh die sehr letzte Argument) ein Verzeichnis ist. Alles (dh alle Dateien / Verzeichnisse, die als Argumente angegeben wurden, mit Ausnahme des letzten) wird in das aktuelle Verzeichnis ( .
) verschoben .mv ./*/* this_is_a_file
, wird es erweitert 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
und mv lehnt es ab, irgendetwas damit zu tun mv: target „this_is_a_file“ is not a directory
. Nichts wird überschrieben oder verschoben.Nun zu Ihrem Befehl: mv ./*/*
Wird erweitert zu 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
. Wie Sie in meinem Beispiel sehen können, ist das letzte Argument ein Verzeichnis, das für mv in Ordnung ist, und alles wird darin verschoben - und Sie erhalten diesen Baum:
.
|-- a/
|-- b/
|-- c/
`-- d/
`-- d4/
|-- a1
|-- a2
|-- a3
|-- a4
|-- b1
|-- b2
|-- b3
|-- b4
|-- d1/
| `-- foo
|-- d2/
| `-- foo
`-- d3/
`-- foo
Ich nehme an, Sie hatten ein ähnliches Szenario und deswegen glaube ich, dass Ihre Dateien nicht weg sind, sondern einfach irgendwo tiefer in die Hierarchie gerückt sind.
Wenn Sie zuerst ein Backup erstellt haben, stellen Sie es von einem Backup wieder her. Versuchen Sie es ansonsten mit einem Tool wie NTFS Undelete. Sie werden mit ziemlicher Sicherheit nicht alles zurückbekommen, aber Sie werden wahrscheinlich die meisten Dinge zurückbekommen.