Ich denke, ich bin ziemlich fortgeschritten in der Verwendung von find, aber jedes Mal, wenn ich es benutze, kann ich mich für mein ganzes Leben nicht an die Methode erinnern, die Option -exec zu schließen. Ich verbringe jedes Mal viel Zeit mit Lesen, wenn ich es benutze. Benutze ich es einfach nicht genug oder erwarte ich zu viel von mir selbst? Beginnen wir mit einem typischen Beispiel, das mich frustriert.
Die Verzeichnisstruktur enthält Dateien mit allen falschen Berechtigungen, versteckte Dateien, symbolische Links usw. Ich möchte den Besitz auf einen angemessenen Wert ändern
find . -type f -exec chown username {} \;
find . -type d -exec chown username {} \;
find . -type d -exec chgrp usergroup {} \;
find . -type f -exec chgrp usergroup {} \;
(Verzeih mir, wenn das Ende rückwärts ist ... Ich habe es vor einer Stunde angeschaut und bin mir immer noch nicht sicher)
Aber ich habe Angst, es wegen Reittieren, symbolischen Links usw. zu betreiben. Ich habe den ultimativen Fehler von chmod gemacht. * Und hatte es schon einmal auf mich zurückgeworfen. Ich weiß, dass -xdev auf das Überqueren von Partitionen verzichten wird, aber ich bin nicht sicher, was mit den Dateien in Verzeichnissen geschehen wird, die symbolische Links sind.
Wie beherrscht man dieses Biest, das wichtige Dateien töten kann?
Aktualisieren Sie das Beschneiden der besten Vorschläge unten und fassen Sie zusammen:
- Lassen Sie ein Übungsverzeichnis mit anderen Übungsverzeichnissen verknüpfen und bereitstellen.
- Verwenden Sie xargs anstelle des nicht intuitiven Befehls exec.
- Verwenden Sie -exec echo {} für Vernunft und Sicherheit
- Semikolon ist etwas Besonderes und Sie entkommen ihm, daher steht der Fluchtcharakter an erster Stelle
- Mit dem Befehl -or können Sie Auswahlkriterien kombinieren.
Ich bin ein wenig verwirrt über den print0, aber xargs war schon immer ein bisschen auf die nicht leicht zu verstehende Übung auf den ersten Blick, die ich zu vermeiden versuche.