Ich versuche, eine Liste von Anwendungen auf meinem Mac abzurufen, indem ich find
nach *.app
. Wenn ich den Befehl jedoch ausführe, erhalte ich viele Permission-denied-Meldungen, wie unten gezeigt.
Der Computer gehört mir und ich habe administrativen Zugriff. Wie kann ich den Befehl ohne die Fehler ausführen?
Last login: Thu Jul 17 07:42:01 on ttys000
pamelas-mbp:~ pamelabohler-sampson$ find / -iname *.app > ~/applications.txt
find: /.DocumentRevisions-V100: Permission denied
find: /.fseventsd: Permission denied
find: /.MobileBackups: Permission denied
find: /.Spotlight-V100: Permission denied
find: /.Trashes: Permission denied
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
find: /Library/Application Support/Apple/ParentalControls/Users: Permission denied
find: /Library/Application Support/com.apple.TCC: Permission denied
find: /Library/Caches/com.apple.Spotlight/schema.201.plist: Permission denied
[...]
find: /private/var/spool/postfix/private: Permission denied
find: /private/var/spool/postfix/public: Permission denied
find: /private/var/spool/postfix/saved: Permission denied
find: /private/var/spool/postfix/trace: Permission denied
find: /private/var/tmp/launchd: Permission denied
find: /System/Library/Caches/com.apple.coresymbolicationd: Permission denied
find: /System/Library/DirectoryServices/DefaultLocalDB/Default: Permission denied
Sie müssen root sein, um auf bestimmte Systemverzeichnisse zugreifen zu können. Stellen Sie Ihrem Befehl Folgendes voran sudo
:
sudo find / -iname *.app > ~/applications.txt
Dies wird Sie zur Eingabe Ihres Passworts auffordern:
Password:
Geben Sie Ihr Passwort ein (die Zeichen werden nicht angezeigt) und drücken Sie dann die Eingabetaste. Der find-Befehl wird dann als root ausgeführt und hat Zugriff auf die Verzeichnisse.
Sie erhalten diese Meldungen, weil Sie als normaler Benutzer keine Berechtigung zum Anzeigen der aufgeführten Verzeichnisse haben. Zum Beispiel /.fseventsd
gehört root und nur root kann darauf zugreifen ( drwx------ 587 root wheel
). Um Root-Privilegien zu erhalten, müssen Sie Ihren Befehl mit ausführen sudo
. In Ihrem Fall wird es sein:
sudo find / -iname *.app > ~/applications.txt
njboot
sudo find / -iname *.app 2>/dev/null > ~/applications.txt
Dies wird beispielsweise nicht/dev/fd/4
in die Datei geschrieben. Der Standardfehler wird übersehen, es wird direkt in die txt-Datei geleitet. Möglicherweise sind Sie mit ...etc besser dran oder erstellen dannsudo find .
eine locate dbsudo /usr/libexec/locate.updatedb
locate [string--see help for further options]
njboot
sudo find / -iname *app 2>/dev/null > ~/applications.txt