Kiedy używam grep
lub find
, zawsze denerwują mnie powiadomienia „Odmowa zezwolenia” i „Brak takiego pliku lub katalogu”, coś takiego:
johndoe@johndoe-desktop:/$ grep -rnP 'YII_CORE_PATH' ./ | grep -v .svn
grep: ./lib/ufw/user6.rules: Permission denied
grep: ./lib/ufw/user.rules: Permission denied
grep: ./lib/init/rw/udev/watch/27: No such file or directory
grep: ./lib/init/rw/udev/watch/26: No such file or directory
grep: ./lib/init/rw/udev/watch/25: No such file or directory
Jak mogę ich uniknąć i sprawić, że widzę tylko istotne dane, tj. Coś, czego naprawdę szukam?
Odpowiedzi:
z grep możesz podać flagę -s, która robi prawie wszystko, co powiedział @ortang
z find, o ile wiem @ortangs, odpowiedź jest najlepsza. coś jak
find / -name "myfile" -type f -print 2>/dev/null
źródło
Spróbuj przekierować
stderr
do/dev/null
.źródło
Przekierowanie
strerr
do/dev/null
(akablack hole
) jest dobrym sposobem tłumienia Permission denied błędów.Należy jednak pamiętać, że ta rana nie tylko tłumi
permission denied
komunikaty, ale WSZYSTKIE komunikaty o błędach.Jeśli chcesz zachować komunikaty o błędach inne niż
permission denied
wtedy, możesz zrobić coś takiego -Jeśli nie chcesz ich zachować, następujące elementy byłyby w porządku -
źródło
2>&1
zamiast o2> /dev/null
pierwszą sugestię.stderr
dostout
pierwszego.Użyj
sudo
polecenia, aby podwyższyć polecenie, aby mieć uprawnienia administracyjne.źródło
Użycie „| &” przed grep -v sobie z tym poradzi, np
źródło