find . -iname '*foo*' Permission denied



  • Hoffe das passt hier rein 🙂

    Immer wenn ich etwas im Netzwerk über mehrere Ordner / Benutzer suchen muss bekomme ich viele Permission denied Fehlermeldungen. Und irgendwo dazwischen finde ich dann meistens das was ich gesucht habe...

    Habe sie mit grep nicht wegbekommen. Gibst da eine Lösung ?



  • Redirection.
    grep auf stdout hilft Dir nicht, weil die Fehlermeldungen nach stderr geschrieben werden.

    find . -iname '*foo*' 2> /dev/null
    


  • Die Fehlermeldungen werden auch auf stderr ausgegeben, also hilft ein 2> /dev/null um diese zu verwerfen.

    Edit: Zu langsam 🙄



  • Geht leider nicht

    find . -iname '*test*' 2 > /dev/null
    find: paths must precede expression
    Usage: find [-H] [-L] [-P] [path...] [expression]

    uname -a

    Linux 2.6.18-164.el5xen #1 SMP Tue Aug 18 15:59:52 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux



  • 2> , ohne ein Leerzeichen dazwischen.



  • lagalopex schrieb:

    2> , ohne ein Leerzeichen dazwischen.

    danke aber trotzdem gehts noch immer nicht.

    find . -iname '*foo*' 2> /dev/null

    find: paths must precede expression
    Usage: find [-H] [-L] [-P] [path...] [expression]

    Leider geht das noch immer nicht 😞



  • Bullz schrieb:

    find . -iname '*foo*' 2> /dev/null

    find: paths must precede expression
    Usage: find [-H] [-L] [-P] [path...] [expression]

    Wenn ich das kopiere, funtioniert es einwandfrei. Was für eine Shell benutzt du denn? (bash, ksh, csh, …)



  • tcsh shell. Unter der Bash shell funktioniert der Befehl in der Tat. Hast du eine Idee wie ich das auch unter meiner SHELL zum laufen bekomme ? Arbeite großteils mit ihr.



  • Bullz schrieb:

    tcsh shell. Unter der Bash shell funktioniert der Befehl in der Tat. Hast du eine Idee wie ich das auch unter meiner SHELL zum laufen bekomme ? Arbeite großteils mit ihr.

    wird nicht so einfach funktionieren, da die tcsh die Umleitung nur von stderr nicht unterstützt:

    aus der manpage von tcsh

    The shell cannot presently redirect diagnostic output
    without also redirecting standard output, but (command > output-file) >& error-file' is often an acceptable workaround. Either output-file or error-file may be/dev/tty' to send output to the terminal.



  • Bullz schrieb:

    tcsh shell. Unter der Bash shell funktioniert der Befehl in der Tat. Hast du eine Idee wie ich das auch unter meiner SHELL zum laufen bekomme ? Arbeite großteils mit ihr.

    Als nicht ganz so hübschen workaround kannst du
    bash -c "find . -iname '*foo*' 2> /dev/null"

    Der Beitrag ging bei der Forumswiederherstellung wohl verloren.


Anmelden zum Antworten