BASH - подсчет количества исполняемых файлов - PullRequest
4 голосов
/ 20 января 2012

Я пытаюсь найти исполняемые файлы и их общее количество в папке, оно отображается, но общее значение не в этом, это мой код ниже, может кто-нибудь выручить меня, если я делаю ошибки, я просто новичок, пытающийся выучить некоторые Надеюсь, bash-скриптинг это верный способ сделать это, спасибо

#!/bin/bash
To="home/magie/d2"
cd "$To"
find . -type f -perm 755

if 
   find . -type f -perm 755
then
 echo | echo wc -l
fi

Ответы [ 5 ]

3 голосов
/ 20 января 2012

Если вы хотите найти всех исполняемых файлов, используйте эту команду:

find home/magie/d2 -type f -perm -u+rx | wc -l

ИЛИ

find home/magie/d2 -type f -perm +111 | wc -l

Все ответы здесь находят файлытолько разрешение 755. Однако имейте в виду, что даже 744 или 700 также являются исполняемыми файлами пользователя.

2 голосов
/ 20 января 2012

Используйте / 111, чтобы найти любой файл, для которого установлен любой из битов выполнения.

найти. тип f -perm / 111 | wc -l

2 голосов
/ 20 января 2012

Просто удалите структуру if и echo

#!/bin/bash
To="home/magie/d2"
cd "$To"
find . -type f -perm 755

find . -type f -perm 755 | wc -l
2 голосов
/ 20 января 2012

Я думаю, я бы сделал что-то вроде этого:

#!/bin/bash
dir=$1
files="$(find $dir -perm 755)"
total=$(wc -l <<< "$files")
echo "$files"
echo "Total: $total"

, где требуемый каталог должен быть передан в качестве аргумента в командной строке, а кавычки используются для сохранения разрывов строк, необходимых позже wc для правильного подсчета количества строк.

1 голос
/ 20 января 2012

Из командной строки простой однострочник должен сделать трюк -

wc -l < <(find /home/magie/d2 -type f -perm 755)

<(..) - это замена процесса .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...