1

Я перемещал файлы, когда случайно набрал команду mv misc/* * вместо mv misc/* . Куда все делось и как вернуть обратно, папка разное пропала?

2 ответа2

6

Я думаю, что все пошло к последнему объекту, возвращенному вторым * . Если бы это был не каталог, вы бы получили ошибку.

Перейдите в каталог, где вы запускаете mv и вызовите echo * . Затем посмотрите в последний каталог, который печатается.


Я думаю, что произошло следующее:

Ваш mv misc/* * был расширен вашей оболочкой до

mv multiple-objects-from-within-misc multiple-objects-from-within-the-current-directory

Последний объект в этой последовательности - это цель, куда пошли ваши файлы и каталоги. На основании ваших комментариев, я думаю, это был каталог tmp . К сожалению, объекты из misc и из верхнего каталога теперь находятся в tmp целом (и со всем, что уже было там), и вы не можете легко определить, откуда он пришел.

2

Если вы запустите ls, вы, вероятно, заметите, что у вас есть каталог с именем *

Да, вы переименовали его в * !

Чтобы вернуть его, снова используйте mv, но вам нужно будет уйти от *.

mv ./\* ./misc

\ Before * избегает его, то есть он трактуется как литерал * вместо того, чтобы пытаться сопоставить что-то еще.

Если вы не можете вспомнить, где находились в файловой системе, используйте find / -name '\*' 2>/dev/null чтобы найти их.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .