Як описано в @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
Тепер, якщо я створю каталог, який є останнім параметром для розширення wild-card, тоді:
$ mkdir 6
$ mv *
$ ls
6
$ ls 6
1 2 3 4 5
Вам слід двічі перевірити, що це за останній аргумент.
- Якщо останнім аргументом був каталог, то ваші дані, можливо, безпечні.
- Якщо загальна кількість аргументів становила 2, а останній аргумент - це каталог, то також ваші дані, можливо, безпечні.
- Якщо загальна кількість аргументів була 2, а останнім аргументом був файл, то другий файл точно не пішов.
Ви впевнені, що не бачили помилки приблизно подібної?
mv: target ‘5’ is not a directory`