6

Мой код скрипта:

var="/some/path"
cp "$var*" "/another/path"

Тогда это бросает:

cp: cannot stat '/some/path/*': No such file or directory

Я попробовал это и получил ту же ошибку:

cp "${var}*" "/another/path"

Наконец, я решил эту проблему:

cp "$var"* "/another/path"

На этот раз команда выполняется успешно, но я хотел бы знать, ПОЧЕМУ.

Не могли бы вы дать объяснение?

1 ответ1

10

Когда вы используете "$var*" результатом будет /some/path* , где * считается символом (не логическим, поскольку он находится внутри двойных кавычек). Так что в вашем случае (/some/path/*)cp ищет файл / папку с именем * внутри директории path .

Когда он находится вне двойных кавычек, считается логическим символом, означающим все, что начинается с path (path1 , path2 т.д.).
Или если path/* (все, что находится в этом каталоге).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .