Я перемещал файлы, когда случайно набрал команду,
mv misc/* *а mv misc/* . не куда все делось, и как я могу вернуть ее, папка misc исчезла?
Я перемещал файлы, когда случайно набрал команду,
mv misc/* *а mv misc/* . не куда все делось, и как я могу вернуть ее, папка misc исчезла?
Ответы:
Я думаю, что все пошло к последнему объекту, возвращенному вторым *. Если бы это был не каталог, вы бы получили ошибку.
Перейдите в каталог, в котором вы работаете, 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для поиска.
bash, dash, sh( при условии , по dashисполняемому) zsh, cshи fish. Никто из них не создал *каталог.
*остается *, и mv кричит mv: target '*' is not a directory. Единственный способ получения *требует, чтобы 1) текущий каталог был пуст и 2) исходный каталог содержал один единственный файл.
*каталог. Спасибо за этот вклад. Я рад, что я не опроверг этот ответ опрометчиво, он может быть полезен в целом. (В этом случае, однако, мы знали с самого начала, что текущий каталог не был пуст - miscбыл там.)