Я перемещал файлы, когда случайно набрал команду mv misc/* *
вместо mv misc/* .
Куда все делось и как вернуть обратно, папка разное пропала?
2 ответа
Я думаю, что все пошло к последнему объекту, возвращенному вторым *
. Если бы это был не каталог, вы бы получили ошибку.
Перейдите в каталог, где вы запускаете mv
и вызовите echo *
. Затем посмотрите в последний каталог, который печатается.
Я думаю, что произошло следующее:
Ваш mv misc/* *
был расширен вашей оболочкой до
mv multiple-objects-from-within-misc multiple-objects-from-within-the-current-directory
Последний объект в этой последовательности - это цель, куда пошли ваши файлы и каталоги. На основании ваших комментариев, я думаю, это был каталог tmp
. К сожалению, объекты из misc
и из верхнего каталога теперь находятся в tmp
целом (и со всем, что уже было там), и вы не можете легко определить, откуда он пришел.
Если вы запустите ls, вы, вероятно, заметите, что у вас есть каталог с именем *
Да, вы переименовали его в *
!
Чтобы вернуть его, снова используйте mv, но вам нужно будет уйти от *.
mv ./\* ./misc
\ Before * избегает его, то есть он трактуется как литерал * вместо того, чтобы пытаться сопоставить что-то еще.
Если вы не можете вспомнить, где находились в файловой системе, используйте find / -name '\*' 2>/dev/null
чтобы найти их.