Antworten:
Das Terminal wird standardmäßig in Ihrem Home-Verzeichnis geöffnet. Geben Sie von einer anderen Stelle aus ein, cd ~
um zum Ausgangsverzeichnis zurückzukehren.
ls -l
zeigt Ihnen zu Beginn die Dateiberechtigungen an, z
-rwxr-xr-x 1 izx izx 11217428 Oct 2 2011 wkhtmltoimage-amd64
Sie können dann mit grep filtern, um das gewünschte Ergebnis zu erhalten:
ls -l | grep -P ".{7}rwx.*"
rwx
was in meinem Home-Verzeichnis zeigt:
-rwxrwxrwx 1 izx izx 0 Jun 15 23:42 sd.png -rwxrwxrwx 1 izx izx 0 Jun 15 23:42 slashdot.png drwxrwxrwx 3 izx izx 4096 15. Juni 21:31 src
Geben Sie in Ihr Home-Verzeichnis ein find . -perm -a+rwx
rwx
von allen stammen. Die Ergebnisse werden mit vollständigen relativen Pfaden angezeigt, z./.mozilla/firefox/lr5z24b3.default/lock ./src ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.la ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so.0 ./src/accountsservice-0.6.15/debian/libaccountsservice-dev/usr/lib/libaccountsservice.so ./src/accountsservice-0.6.15/debian/libaccountsservice0/usr/lib/libaccountsservice.so.0 ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so.0 ./.pulse/676238f89edd1f57138b3da400000004-runtime ./sd.png ./slashdot.png ./XnView/lib/libQtGui.so.4 ./XnView/lib/libQtWebKit.so.4 ./XnView/lib/libQtXml.so.4 ./XnView/lib/libQtDBus.so.4 ./XnView/lib/libQtNetwork.so.4 ./XnView/lib/libQtCore.so.4 ./XnView/lib/libQtSvg.so.4
Die fett gedruckten Einträge im Home-Verzeichnis wurden auch bei der ersten Methode angezeigt.
Weitere Möglichkeiten, um dasfind
zu erreichen, was Sie wollen, finden Sie in der Antwort von Eliah Kagan direkt über oder unter dieser.
Normalerweise verwenden Sie den ls
Befehl, um Informationen zu den Dateiberechtigungen zu erhalten. Für eine bestimmte Aufgabe, bei der Sie Dateien mit bestimmten Berechtigungen automatisch auflisten möchten, wird die Verwendung von ls
, selbst wenn Sie die Ausgabe mit einem anderen Dienstprogramm wie filtern grep
, schnell sehr komplex. Für solche Aufgaben ist es also besser, sie zu verwenden find
.
Wenn Sie alle Dateien auflisten möchten, die ...
enthalten ist überall in Ihrem Home - Verzeichnis (auch in Unterverzeichnissen Ihres Home - Verzeichnisses, Verzeichnisse dieser Unterverzeichnisse und so weiter), und
das sind auch explizit lesbar, beschreibbar und von jedem ausführbar
... dann erledigt dieser Befehl das für Sie:
find ~ -perm 777
So einfach ist das wirklich.
Wenn Sie nur Dateien auflisten möchten, die die beiden oben genannten Bedingungen erfüllen und sich direkt im Ausgangsverzeichnis befinden (nicht in einem Unterverzeichnis), verwenden Sie stattdessen diesen Befehl:
find ~ -maxdepth 1 -perm 777
In diesem Fall 777
werden Dateien angezeigt, die für Sie, Ihre Gruppe und alle anderen Personen lesbar, beschreibbar und ausführbar sind. Wenn einige der Dateien möglicherweise seltsame Berechtigungssätze haben, z. B. 477 (Sie können die Datei lesen und alle anderen können die Datei ausführen und schreiben), möchten Sie wahrscheinlich Folgendes verwenden:
find ~ -maxdepth 1 -perm -o+rwx
Der führende Bindestrich vor -o+rwx
bedeutet, dass die Datei andere Berechtigungen haben kann und o+rwx
dass andere (außerhalb der Gruppe und des Benutzers, dem diese Datei gehört) diese Datei lesen, schreiben und ausführen können, ohne andere Berechtigungen zu überprüfen.
Weitere man find
Informationen zum Ausführen dieser und ähnlicher Vorgänge sowie man chmod
zur Bedeutung 777
und zu anderen numerischen Modi finden Sie unter.
Wechseln Sie in das Verzeichnis, in dem Sie die Berechtigungen der Datei mit dem folgenden Befehl erfahren möchten:
cd "Directory"
Ersetzen Sie den Text in Anführungszeichen durch den gewünschten Verzeichnisnamen.
Geben Sie dann einen anderen Befehl ein:
ls -l
Dieser Befehl ( ls
) wird normalerweise verwendet, um die Dateinamen abzurufen. Das -l
Argument dazu gibt vollständige Informationen über die Dateien.
So können Sie auch die Dateiberechtigungen anzeigen.
R
Flags zumls
Befehl erleichtert werden . Bei der Weiterleitunggrep
wäre dann unklar, wo sich die einzelnen Dateien im Ausgangsverzeichnis befinden (dh in welchem Unterpfad). Kennen Sie einen Weg, um dieses Problem mit einerls
-using-Methode zu umgehen? Das andere Problem dabei ist, dass Dateien, die setuid, setgid oder sticky sind,s
odert
als eines der Modusflags haben und nicht vomgrep
Befehl abgeglichen werden .