Оболочка раскроет * в имена файлов, после чего cp интерпретирует аргументы как источники и назначение. Результат зависит от содержимого каталога; команда не означает «скопировать всё куда-то».
Что произойдёт при выполнении команды `cp *` и нажатии Enter?
Оболочка раскроет * в имена файлов, после чего cp интерпретирует аргументы как источники и назначение. Результат зависит от содержимого каталога; команда не означает «скопировать всё куда-то».
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт при выполнении команды cp * и нажатии Enter?
Ответ
Оболочка раскроет * в имена файлов, после чего cp интерпретирует аргументы как источники и назначение. Результат зависит от содержимого каталога; команда не означает «скопировать всё куда-то».
В обычной shell-конфигурации скрытые имена не входят в *. Если раскрытие даст два обычных файла, последний станет назначением и может быть перезаписан. При нескольких источниках последний аргумент должен обозначать каталог, иначе будет ошибка. Для копирования каталогов обычно нужен рекурсивный режим. При отсутствии совпадений поведение зависит от оболочки и её настроек. Имена, начинающиеся с -, могут дополнительно влиять на разбор опций. Поэтому безопасно указывают назначение явно и используют -- там, где оно поддерживается.