Listen Sie nicht beschreibbare Dateien unter Linux auf


7

Wie kann ich eine Liste nicht beschreibbarer Dateien in meinem aktuellen Verzeichnis abrufen?

Antworten:


14

Interpretiere das als: Benutzer / Gruppe / Andere kann nicht schreiben

find . -maxdepth 1 -not -perm /ugo+w


2
+1 für-maxdepth 1
Aaron Copley

3

Dadurch findwerden Dateien gefunden, die von niemandem geschrieben werden können:

find . ! -perm /222

EDIT: Aus hmonts Vorschlag zum Kommentar:

find . ! -perm /222 -exec ls -l {} +

Und während Mikey seine Antwort gibt, können Sie -maxdepth 1den Fund auf ein einziges Verzeichnis beschränken.


Har! Du hast mich um 2 Sekunden geschlagen, aber das 'im aktuellen Verzeichnis' vergessen (zusammen mit allen anderen). : p
MikeyB

2
+1 weil es das klarste ist. Ich würde ein hinzufügen -exec ls -l {} \;, um vollständige Informationen über Berechtigungen und Eigentümer- / Gruppenmaterial bereitzustellen.
Hmontoliu

@ Mikey, das auf viele Arten interpretiert werden kann :) Aber deine Syntax ist insgesamt besser lesbar als meine.
Coredump

@hmontoliu, nur um das cmd weiter zu verfeinern: anstelle von "-exec", und da dies Linux ist (im Vergleich zu solaris et al.), können Sie einfach die schnellere Option "-ls" verwenden, um zu finden (das Format ist unterschiedlich, der Inhalt ist meistens das gleiche):find . -maxdepth 1 ! -perm /222 -ls
michael

@ Michael_n: gut zu wissen
Hmontoliu

1

find . ! -perm /a+w
find . ! -perm -ug+w

oder eine andere Permutation mit symbolischer Notation, um Ihre Anforderungen zu erfüllen.

Zur Verdeutlichung stimmt das '/' mit jedem Benutzer, jeder Gruppe oder anderen überein. Um allen zu entsprechen, stellen Sie dem Modus '-' voran.


0
perl -le 'print for grep { ! -w } <*>'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.