3

Мне нужно использовать команду file для подсчета количества скриптов в каталоге.

Я знаю, как получить тип file с помощью файла :

file test
test: Bourne-Again shell script, ASCII text executable

Но как мне использовать file для подсчета количества файлов скриптов?

1 ответ1

6

Файлы сценариев обычно являются исполняемыми, вы можете легко найти все исполняемые файлы в каталоге с помощью команды find . Обратите внимание, что эти команды для поиска исполняемых файлов найдут все исполняемые файлы, а не только скрипты).

find . -type f -executable

Это найдет все исполняемые файлы в каталоге, из которого вы его запускаете. Он также будет включать файлы из подкаталогов, чтобы игнорировать подкаталоги, добавьте -maxdepth 1 следующим образом:

find . -maxdepth 1 -type f -executable

Теперь это даст список всех файлов, а не их количество. Чтобы получить количество, передайте результат в wc -l:

find . -type f -executable | wc -l

В случае, когда некоторые из файлов являются файлами сценариев, но не являются исполняемыми, могут использоваться следующие команды:

  • Если нужно учитывать только файлы в текущем каталоге:

    file -b * | grep " script" | wc -l

  • Если файлы в подкаталогах должны быть включены:

    find . -type f -exec file -b {} \; | grep " script" | wc -l

Пробел добавляется перед "script" в команде grep, чтобы избежать недопустимых совпадений (например, "описательный" в файлах TIF).

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