Ich suche rekursiv in Verzeichnissen nach Dateien, die NICHT einem bestimmten Benutzer gehören, und bin mir nicht sicher, wie ich diese schreiben soll.
182
Das Dienstprogramm find (1) verfügt über Primärdaten, die mit dem "!" Negiert ("umgekehrt") werden können. Operator. Bei der Eingabeaufforderung muss man der Negation jedoch mit einem Backslash entkommen, da es sich um ein Shell-Metazeichen handelt. Ergebnis:
find . \! -user foo -print
!
scheint optional zu seinxargs -I{} -P3 -- ${cmdhere} {}
Wenn Sie die Ausgabe an weiterleiten , kann $ {cmdhere} für jede Datei parallel ausgeführt werden. cmdhere :: = Standard-Unix-Utils; Standard Unix Utils :: = chmod, chown, stat, ls, ...find . ...
oder die Leitung zumxargs
ersten oder zweiten Weg?find . ! -user foo -exec chown <owner>:<group> {} \;
Andere haben die Frage "NICHT im Besitz eines bestimmten Benutzers" im Körper beantwortet . Hier ist eine, die die Titelfrage beantwortet, aber nicht bereitgestellt wurde:
Sie können es so verwenden:
Und eine verwandte:
quelle
-user
Findet nach Benutzer oder Benutzer-ID und!
invertiert das Prädikat. Also ,! -user ...
.quelle
Sie können dies verwenden:
quelle
Mit z-shell (zsh) können Sie verwenden
oder
um rekursiv nach allen Dateien zu suchen, die Ihnen nicht gehören.
quelle
-a
aufgrund der Platzhaltererweiterung keine Punktdateien auflistet, auch nicht mit dem Flag. Verwenden Sie diedotglob
Option zsh, um Punktdateien abzufangen :setopt dotglob
. In einer Zeile :(setopt dotglob; ls **/*(^U) )
. Die Klammern müssen in einer Unterschale ausgeführt werden, damit Sie nach Abschluss nicht mehr ausgeführt werdensetopt nodotglob
müssen.