Wenn ich das tue:
locate makeinfo
ODER
find / -name "*makeinfo*"
Ich bekomme nichts.
Aber wenn ich das tue makeinfo --help
, erhalte ich die richtige Hilfeausgabe.
Wie ist das möglich? Wennmakeinfo
es sich um eine ausführbare Datei handelt, muss sie sich befindenirgendwo, richtig? Oder es kann ein Alias sein, was es nicht ist. Ich überprüfe .bashrc
, .bash_aliases
und alle diese Dateien. Ich kann mir nicht vorstellen, wie das passieren kann.
Was sind die Gründe für dieses seltsame Verhalten?
Bearbeiten: type makeinfo
und which makeinfo
beide geben aus /usr/bin/makeinfo
.
Antwort1
Ich habe das Problem gefunden.
Das scheint locate
schnell zu sein, weil es auf einer Datenbank basiert, die es aufbaut, um Dinge schneller zu suchen. Diese Datenbank wird täglich aktualisiert. Der updatedb
Befehl tut das. Wie sich herausstellt, updatedb
wird alle 24 Stunden ausgeführt, und als ich versuchte, mit nach der Datei zu suchen locate
, waren seit der Erstellung der Datei noch keine 24 Stunden vergangen. Nach dem Ausführen sudo updatedb
von konnte locate die Datei finden.
Ich empfehle , für weitere Informationen die Manpages von locate
und zu lesen.updatedb
Was betrifft find
, scheint es, als wäre ich ungeduldig gewesen und habe nicht gewartet, bis die Ausführung abgeschlossen war.
Antwort2
Ich verwende 'locate(1)' nicht und weiß auch nicht viel darüber. Aber 'find(1)' kann Ihren Befehl möglicherweise nicht finden, da er standardmäßig nicht Dateisystemzeilen überschreitet. Der Befehl makeinfo befindet sich wahrscheinlich in /usr/bin (tippen Sie, which makeinfo
um ihn zu finden), und die Partition '/usr' befindet sich möglicherweise auf einem anderen Dateisystem.
EDIT: Doh! Ich sehe das Problem! Verwenden Sie nicht „*makeinfo*“. Verwenden Sie „makeinfo“. Wenn Sie wirklich eine Datei finden möchten, die irgendwo die Zeichenfolge „makeinfo“ enthält, verwenden Sie: find / -type f -name '*makeinfo*'
. Das heißt, vergleichen Sie nur mit Dateien (nicht mit Verzeichnissen – viel schneller) und verwenden Sie einfache Anführungszeichen, keine doppelten Anführungszeichen.
Letzte Bearbeitung: Meine Antwort war /völlig/ daneben. Seine Probleme hatten nichts mit Anführungszeichen zu tun.