Я перемещал файлы, когда случайно набрал команду,
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
был там.)