Конфликт именования с расширением файла и Shebang в Linux?

В качестве альтернативы рекурсивным grepиxargs:

$ find /dir -type f -name "*.txt" -exec grep -q '^[[:space:]]*=' {} ';' -print

Это будет искать в/dir(и ниже )все обычные файлы, имена которых соответствуют заданному шаблону. Для каждого такого файла, если grep -q '^[[:space:]]*='завершается с нулевым статусом выхода (шаблон совпал где-то в файле ), то выводится его имя.

Или, если вы просто хотите увидеть сами строки:

$ find /dir -type f -name "*.txt" -exec grep '^[[:space:]]*=' {} '+'

+в конце будет передавать как можно больше имен файлов при каждом вызове grep, тогда как использование ;, как в моем первом примере, будет передавать только один файл за раз.

0
10.08.2019, 13:47
1 ответ

Между экстенсионалом и шебангом нет никакой связи. Расширения предназначены только для пользователей.

Также для файлов bashвы можете использовать #!/bin/bash. И /bin/shобычно является символической ссылкой на /bin/bashили /bin/dash, зависит от системы.

0
28.01.2020, 03:22

Теги

Похожие вопросы