In meinem Verzeichnis ~ / docs möchte ich alle Dateien "berühren", die mit .txt enden
Wie kann ich das machen?
Mit find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
Option stimmt mit allen txt
Dateien überein - exec
führt den Befehl touch
für den Dateinamen aus, der in ersetzt wird{}
\;
beendet den Befehl und touch
wird für jede gefundene Datei einmal aufgerufenHinweis:
\+
am Ende einen einzigen Befehl, der touch
für alle diese Dateien gleichzeitig ausgeführt wird. Dies ist nicht mit allen Befehlen möglich, funktioniert jedoch touch
und spart Ihnen einige Anrufe, wenn Sie viele betroffene Dateien haben.
{} \+
wäre hier besser ...touch
kann viele Dateinamen in seiner Kommandozeile verarbeiten, so werden beispielsweise mit 10.000 Dateien und{} \;
10.000 Aufrufen antouch
... Using{} \+
wirdtouch
nur einmal aufgerufen (abhängig vom verfügbaren Speicher) ... hier ist ein Auszug aus der Manpage von find :-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
. Weitere Einzelheiten finden Sie in derman find
Dokumentation.