killall google*
Уловка с одним уровнем:
...и вычитание 2. В результате получаем количество каталогов в этом каталоге (не рекурсивных).
Однако при рекурсии вы должны изучить каждую директорию. Проблема в том, что нет способа сказать "дайте мне список только директорий внутри этой директории". Вы должны получить список каждой одиночной записи в директории, и затем [115180]stat[115181] каждый для того чтобы узнать, если это директория или файл.
Теперь когда вы ставите директорию, вы можете использовать вышеприведенную уловку hardlink для того чтобы найти, содержит ли та директория любые подкаталоги, и таким образом вы можете сохранить себя немного времени и не спуститься в ту директорию. Утилита [115182]find[115183] на самом деле использует этот трюк, чтобы получить небольшой прирост производительности в процессе.
Таким образом, в основном, использование [115184]find[115185] будет лучшим, что вы можете сделать, если вам нужна рекурсия.[114752].
xargs
, кажется, что вы хотите:
echo install update doctor | xargs -n1 brew
Убегайте первого пространства и удалите другие пробелы:
$ printf "'%s'\n" brew\ {install,update,doctor}
'brew install'
'brew update'
'brew doctor'
Если Brew
- это команда просто написать (также без пробелов):
brew {install,update,doctor}
Как с вашим примером MKDIR:
mkdir {install,update,doctor}
Вам нужно Нет внешнего процесса или трубопровода для этого; Все можно сделать в вашем bash
оболочке.
Как насчет (обратите внимание на обратную косую черту, все важно):
echo brew\ {install,update,doctor}\;| bash
первый шаблон (аргументы для echo
) будет расширяться следующим образом:
echo brew install; brew update; brew doctor;
, который затем выводится эхом, производя следующий вывод:
brew install; brew update; brew doctor;
, который мы передаем новому экземпляру bash.