Fehler bei der Ausgabeumleitung des Whatis-Befehls

Fehler bei der Ausgabeumleitung des Whatis-Befehls

Gehen Sie wie folgt vor und es funktioniert

~$whatis `ls /bin`
stty (1)             - change and print terminal line settings

stty (2)             - unimplemented system calls

su (1)               - change user ID or become superuser

etc...

die Ausgabe in eine Datei umleiten und ich bekomme Folgendes?

~$ whatis `ls /bin` > blah

kmod: nothing appropriate.

ntfsck: nothing appropriate.

Antwort1

>leitet nur Standardausgabe ( stdout) um, aber wenn whatiskeine Informationen über eine Datei gefunden werden können, schreibt es diese in einen anderen Stream, stderr. Sie können das auch umleiten, 2>da stderres sich bei dem Dateihandle um 2 handelt. Sie können sowohl stdout als auch stderr umleiten &>, oder Sie können stderr auf stdout umleiten, indem Sie Folgendes tun:2>&1

Alles zur Umleitung finden Sie hierHier

Wenn Sie also in Ihrem Beispiel alle Fehler und auch den Erfolg anzeigen möchten, blahkönnen Sie Folgendes tun:

whatis `ls /bin` &> blah

oder mit der alternativen Subshell-Syntax, die heutzutage bevorzugt wird:

whatis $(ls /bin) &> blah

obwohl /bines wahrscheinlich keines gibt, seien Sie bei solchen Dingen vorsichtig. Die Ergebnisse von ls /binunterliegen der Worttrennung, d. h. wenn eine der Dateien dort beispielsweise Leerzeichen enthält, werden sie als verschiedene Argumente für behandelt whatis. Aus diesem Grund wird Ihnen im Allgemeinen davon abgeraten, die Ausgabe von zu analysieren ls(siehediese Fragefür eine Diskussion darüber)

Sie könnten das, was Sie versuchen, anders machen, wie

find /bin -maxdepth 1 -type f -exec whatis {} + &> blah

das nachschaut /bin, aber nicht tiefer geht (wie der Glob), dann nur Dateien findet (das type fArgument) und für alles, was es findet, ausführt whatisund dann die gleiche Umleitung durchführt, über die wir gesprochen haben.

Antwort2

was ist durchsucht eine Reihe von Datenbankdateien mit Kurzbeschreibungen von Systembefehlen nach Schlüsselwörtern und zeigt das Ergebnis auf der Standardausgabe an. Es werden nur vollständige Wortübereinstimmungen angezeigt.

kmod: nichts passendes. wird eine Meldung angezeigt, dass nichts für kmod gefunden wurde.

wenn Sie die gesamte Ausgabe umleiten möchten, versuchen Sie Folgendes:

whatis $(ls /bin) > /tmp/a.txt

verwandte Informationen