Щоб розгорнутись трохи вище за вищенаведеною відповіддю, в Linux підстановочні знаки розширюються оболонкою, що означає, що оболонка буде викликати команду зі списком відповідних імен файлів як аргументів. І оболонка виглядає лише в поточному каталозі для відповідності файлів (або в будь-якому каталозі, який ви вказали до підстановки). Наприклад, така команда, як:
ls *.zip
насправді перекладається на:
ls file1.zip file2.zip file3.zip
І, якщо .zipв поточному каталозі немає файлів, ім’я прямого файлу *.zipпередається команді, і в цьому випадку він не вподобає файл, який називається *.zip. (A *є юридичним символом у імені файлу Unix / Linux, btw). Тепер, якщо ви не хочете, щоб оболонка розширювала підстановку, але натомість, якщо ви хочете, щоб підказки передавались безпосередньо команді, яку ви викликаєте, вам доведеться укласти її в лапки. Це має цікавий ефект, оскільки така команда, як:
find . -name *.zip
дасть очікувані результати, якщо .zipу вашому поточному каталозі немає файлів (бачить команда find *.zip). Але якщо у вас є один або більше .zipфайлів у поточному каталозі, виконується виконання:
find . -name file1.zip file2.zip
яка не знайде збігів у жодних підкаталогах (якщо вони не будуть точно названі file1.zipабо file2.zipтощо). Тож мораль історії полягає в тому, що, використовуючи пошук, обов'язково використовуйте лапки навколо будь-якого імені файлу з підстановкою.