Исключите скрытые подкаталоги из grep-r

Вы пишете команду неправильным способом. Искать файл в /var/www/unprocessed_sounds/ каталог, необходимо просто записать как это

find /var/www/unprocessed_sounds/ -type f

Запись как find /var/www/unprocessed_sounds/ * -type f будет искать файл в /var/www/unprocessed_sounds/ и * что означает все каталоги в текущем каталоге также.

22
02.10.2014, 01:04
2 ответа

Использование - Опция - Exclude-Dir , например:

grep -r --exclude-dir='.*' some_string

из MAN GREP :

--exclude-dir=DIR
              Exclude directories matching the pattern DIR from recursive searches.

Обратите внимание, однако, что - исключить - dir Опция доступна только в GNU GREP. Если ваш grep не поддерживает его, вам может потребоваться использовать другой инструмент, например, :

find . \( -name .svn -prune \) -o -name "*" -exec grep -H "some_string" {} 2>/dev/null \;
21
27.01.2020, 19:43

Обычно я использую это:

for e in $(find . -maxdepth 1 -type d); do echo ${e#\./}; done | grep -v '^\.'

$ {e% \ ./} удалит первый ./ и затем grep удаляет все, что начинается с точки.

1
27.01.2020, 19:43

Теги

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