Администрирование FreeBSD, Linux, ... Странное поведение команды find Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Странное поведение команды find Печать
Добавил(а) microsin   

Столкнулся со странным для меня поведением команды find. Почему-то не работал шаблон поиска *.расширение. Например, следуюая команда с шаблоном поиска *.pdf находила только один PDF-файл, хотя в подкаталогах их было несколько:

$ find . -iname *.pdf
./README.pdf

Я точно знал, что там еще есть как минимум один файл с окончанием "_rus.pdf", и попробовал шаблон *_rus.pdf. Каково же было мое удивление, что файл нашелся:

$ find . -iname *_rus.pdf
./packages/rt_ota_lib/docs/bootloader_OTA_flow_chart_rus.pdf

Как такое может быть, что шаблон поиска *_rus.pdf работает, а шаблон *.pdf не работает? Для меня этот вопрос до сих пор остается открытым.

Если указать шаблон в кавычках, двойных или одинарных, то шаблон *.pdf начинает нормально работать:

$ find . -iname "*.pdf"
./packages/rt_ota_lib/docs/bootloader_OTA_flow_chart_china.pdf
./packages/rt_ota_lib/docs/bootloader_OTA_flow_chart_rus.pdf
./packages/rt_ota_lib/docs/bootloader_OTA_flow_chart.pdf
./tools/rt_partition_tool/rt_partition_tool.pdf
./tools/beken_packager/Beken Firmware Packaging Tool Instructions.pdf
./tools/uart/bootloaderand uart download instructions.pdf
./README.pdf

А шаблон поиска *.md работает одинаково и в кавычках, и без кавычек:

$ find . -iname *.md
./packages/rt_ota_lib/tools/fatfs_ota_packaging_tool/readme.md
./packages/rt_ota_lib/README.md
./packages/rt_ota_lib/docs/README_rus.md
./packages/rt_ota_lib/docs/principle_rus.md
./packages/rt_ota_lib/docs/principle.md
./packages/rt_ota_lib/docs/version.md
./packages/rt_ota_lib/docs/port.md
./packages/rt_ota_lib/docs/introduction_rus.md
./packages/rt_ota_lib/docs/user-guide_rus.md
./packages/rt_ota_lib/docs/user-guide.md
./packages/rt_ota_lib/docs/port_rus.md
./packages/rt_ota_lib/docs/README.md
./packages/rt_ota_lib/docs/api.md
./packages/rt_ota_lib/docs/samples.md
./packages/rt_ota_lib/docs/api_rus.md
./packages/rt_ota_lib/docs/introduction.md
./packages/rt_ota_lib/docs/samples_rus.md
./packages/quicklz/README.md
./packages/fal/samples/README.md
./packages/fal/samples/porting/README.md
./packages/fal/README.md
./packages/tinycrypt/README.md

Вышеописанная магия наблюдалась на Ubuntu 20.04 + bash (x-terminal-emulator).

[Ссылки]

1. Wildcard expansion site:frippery.org.

 

Добавить комментарий


Защитный код
Обновить

Top of Page