Можно найти общее описание CFS здесь. Это не вес/ограничение, базирующийся в том смысле, что это не основано на распределении кванта времени выполнения среди самых пригодных процессов. Вы могли бы хотеть читать о том, как хорошие уровни реализованы также, который ясно даст понять различие.
Ответ, данный kev, повредится на файлах с новыми строками на имя. Можно выполнить в этом чистом bash
:
shopt -s nullglob dotglob globstar
set -- **/*.pdf **/*.tex
echo "$#"
find
хорошо работает мне:
$ find . -name '*.pdf' -o -name '*.tex' | wc -l
75
$ find . -name '*.pdf' | wc -l
16
$ find . -name '*.tex' | wc -l
59
$ echo $((16+59))
75
Править:
Обработать особый случай: newline
в имени файла
$ find . \( -name '*.pdf' -o -name '*.tex' \) -printf x | wc -c
> $'foo\nbar.pdf' ; > $'baz\nqux.tex' ; find . -name '*.pdf' -o -name '*.tex' | wc -l
- ответ 4
, который не корректен (существует два файла).
– Chris Down
22.12.2011, 10:47
Я рекомендовал бы (при наличии) использовать locate
вместо находки. Вы запросили бы базу данных, и результаты будут мгновенны и нет практически никакой нагрузки на систему. Хотя база данных только обновляется, когда Ваша система работает updatedb
таким образом, если бы Вы хотели до второй информации, то необходимо было бы удостовериться, что выполнили ее сначала, и она создаст нагрузку для системы, но, она зависит от того, как Вы намереваетесь использовать свой поиск.
Вы могли использовать любой regex, удовлетворяет Ваши потребности.
system1:/unix.stackexchange # locate *.tex *.pdf | grep unix.stack.*
/unix.stackexchange/access_me/1/file.pdf
/unix.stackexchange/access_me/1/file.tex
set
и$#
? – pbm 23.03.2012, 17:46set
в справедливо надежно объясняютhelp set
и$#
содержит количество аргументов. – Chris Down 23.03.2012, 21:22