Zu der Zeit befinden sich noch viele Dateien auf meinem System und ich brauche sie nicht mehr. Wie lösche ich also alle Dateien, die mindestens ein Jahr alt sind?
command-line
Maythux
quelle
quelle
{}
in zitieren-exec
(so liest es-exec rm "{}" \;
). Dies stellt sicher, dass Leerzeichen richtig behandelt werden ... Und Sie könnten-delete
stattdessen einfach die Funktion verwenden-exec
."{}"
in verwandelt,{}
bevor sie anfind
erster Stelle übergeben wird;find
ersetzt sie dann. Das Zitieren{}
wird für den Fall empfohlen{
und}
selbst kann manchmal von der Shell speziell behandelt werden - was nichts zu tun hat Sie mit Leerzeichen. Und oft{}
muss nicht zitiert werden. ich nicht jede Situation denken kann, zumindest beim Aufruf Fund aus einem Bourne - Shell-Stil, wenn{}
, mit nichts drin, selbst als Argument erscheinen würdefind
Griffe für sich selbst entkommen, aber es ist keine schlechte Angewohnheit, beim Schreiben von Skripten dabei zu sein. Es tut nicht weh.find
nicht mit dem Entkommen fertig würden ,"{}"
hätten Sie immer noch den gleichen Effekt wie -{}
nur würde keiner funktionieren, anstatt dass beide funktionieren. Dasselbe{}
und"{}"
dasselbe Verhalten kann und kann nicht an einer Besonderheit von find liegen. Es ist eine schlechte Angewohnheit, zu verwechseln, was durch die Shell erweitert wird, mit dem, was durch ein anderes Programm erweitert wird . Wir alle machen diesen Fehler gelegentlich, aber es ist immer noch ein Fehler - keine bewährte Methode. (Man könnte immer noch zitieren{}
, um den Menschen zu zeigen, dass es kein Muster für die Klammererweiterung ist, aber das hat nichts mit der Wortspaltung zu tun.)