Как описано @ssssteffff, с mv *
помощью оболочки выполняется расширение по шаблону из файлов в текущем каталоге. Однако поведение mv
команды зависит от того, на сколько аргументов *
распространяется. Если аргументов более двух, то последним аргументом должен быть каталог:
mv [OPTION]... SOURCE... DIRECTORY
Так,
Я создал 5 файлов
$ touch 1 2 3 4 5
$ ls
1 2 3 4 5
$ mv *
mv: target ‘5’ is not a directory
$ ls
1 2 3 4 5
Теперь, если я создам каталог, который будет последним параметром расширения подстановочных знаков, то:
$ mkdir 6
$ mv *
$ ls
6
$ ls 6
1 2 3 4 5
Вы должны дважды проверить, что это был за последний аргумент.
- Если последний аргумент был каталогом, то ваши данные, возможно, в безопасности.
- Если общее количество аргументов было 2, а последний аргумент был каталогом, то ваши данные также могут быть в безопасности.
- Если общее количество аргументов равнялось 2, а последний аргумент был файлом, то второй файл пропал наверняка.
Вы уверены, что не видели ошибку что-то вроде этого?
mv: target ‘5’ is not a directory`