Как я могу восстановить эти файлы?
Я использовал: mv ./*/*
когда это должно было быть mv ./*/* .
Теперь все мои файлы исчезли.
Я не думаю, что ваши файлы потеряны; это должно было случиться:
Предположим следующую структуру (dirs отмечены /
)
.
|-- a/
| |-- a1
| |-- a2
| |-- a3
| `-- a4
|-- b/
| |-- b1
| |-- b2
| |-- b3
| `-- b4
|-- c/
`-- d/
|-- d1/
| `-- foo
|-- d2/
| `-- foo
|-- d3/
| `-- foo
`-- d4/
Во-первых, помните, что с Un * x не mv
расширяет символы подстановки, а shell
:
mv ./*/* .
это расширяется до 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 .
и mv сделает то, что вы хотите, потому что целью (то есть самым последним аргументом) является каталог. Все (то есть все файлы / каталоги, заданные в качестве аргументов, кроме последнего) перемещается в текущий каталог (.
).mv ./*/* this_is_a_file
который будет расширен до 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
и mv отказывается что-либо делать с помощью mv: target „this_is_a_file“ is not a directory
. Ничто не перезаписывается и не перемещается.Теперь, к вашей команде: mv ./*/*
расширяется до 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
. Как вы можете видеть в моем примере, случается, что последний аргумент является каталогом, который подходит для mv, и все перемещается туда - и вы в итоге получаете это дерево:
.
|-- a/
|-- b/
|-- c/
`-- d/
`-- d4/
|-- a1
|-- a2
|-- a3
|-- a4
|-- b1
|-- b2
|-- b3
|-- b4
|-- d1/
| `-- foo
|-- d2/
| `-- foo
`-- d3/
`-- foo
Я полагаю, у вас был похожий сценарий, и поэтому я считаю, что ваши файлы не исчезли, а просто попали куда-то глубже в иерархию.
Вы уверены, что они ушли?
Я считаю, что оболочка расширилась бы ./*/*
в список файлов и каталогов. И если бы последним элементом в этом списке оказался каталог, команда mv
бы его в качестве пункта назначения.
Если вы сначала сделали резервную копию, восстановитесь из резервной копии. В противном случае, попробуйте такой инструмент, как NTFS Undelete; Вы почти наверняка не вернете все, но, вероятно, вернете большинство вещей.