jak pozbyć się ostrzeżeń przy użyciu funkcji znajdź

0

Dostaję wiele ostrzeżeń, gdy szukam określonego pliku w katalogu z wieloma wiszącymi linkami. Próbowałem użyć opcji -nowarn, aby pozbyć się ostrzeżeń, ale na próżno. Pojawiają się ostrzeżenia:

find: ./foo/bar: No such file or directory
HaiYuan Zhang
źródło
1
Czy możesz podać wersję znalezionego systemu operacyjnego, której używasz, i podać dokładny wiersz polecenia. Próbowałem prostego przykładu i nie otrzymałem żadnych ostrzeżeń o wiszących dowiązaniach symbolicznych.
Peter Eisentraut
Wydaje mi się, że nie używasz polecenia poprawnie, ale naprawdę musisz podać dodatkowe informacje, aby uzyskać coś pomocnego.
phunehehe
Oprócz wersji OS / find pomocne może być określenie wypróbowanych linii poleceń. Pomocne ls -lmogą być również przykładowe dane wyjściowe z tych poleceń i dla danego katalogu. Szczegółowe pytania ułatwiają respondentom udzielenie odpowiednich odpowiedzi.
David Spillett

Odpowiedzi:

2

Możesz przekierować, stderraby /dev/nullpolubić następujące przykłady:

find . -type f 2> /dev/null
find . -type f -print0 2> /dev/null | xargs -0 ls -l

choć chodzi tutaj o to, że ignorujesz wszystkie błędy zgłaszane przez stderr find, więc usuwaj wiszące dowiązania symboliczne, jeśli nie są potrzebne (mogą być wymagane, jeśli odnoszą się do systemów plików, które nie są teraz zamontowane, ale będą później, na przykład , ale jeśli nie ma powodu, aby byli obecni, pozbyć się ich zamiast próbować ukryć ostrzeżenia przed nimi) byłby pierwszym wyborem rozwiązania.

David Spillett
źródło
Jeśli chcesz po prostu pozbyć się ostrzeżeń (tj.
Ich