Erstellungsdatum aller Dateien innerhalb eines Ordners ändern?

D

DrNibbert

Aktives Mitglied
Thread Starter
Dabei seit
22.05.2008
Beiträge
267
Reaktionspunkte
7
Hallo zusammen!

Ich würde gerne das Erstellungsdatum von einem ganzen Haufen Dateien ändern (SetFile -d) - allerdings wäre es zu viel aufwand das für jede Datei einzeln zu machen, gibt es da eine Möglichkeit, den Befehl gleich für alle Dateien in einem Ordner anzuwenden? (z.B. mit dem ls Befehl kombinieren)?

Danke für Tipps!!
 
Unterstützt SetFile keine generischen Dateinamen?
Ansonsten mit find -exec oder einer for-Schleife arbeiten als Denkanstösse......
 
  • Gefällt mir
Reaktionen: DrNibbert
Danke für die Antwort :)
Ich muss dazu sagen, dass ich relativ Terminal-Unerfahren bin und bis auf einzelne Befehle wenig davon verstehe... ich hab schonmal gehört dass man Verschiedene Befehle mittels "|" kombinieren kann, aber da weis ich leider nicht wie die genaue Syntax aussehen muss :-(
Wie würde denn die Syntax aussehen wenn ich mit SetFile generische Namen verwenden kann?
SetFile -d mm/dd/yyy hh:mm:ss /Pfad des Ordnerns/*.*
?

Ich will da nichts falschmachen damit ich nicht plötzlich was ändere was ich nicht wollte :-D
 
for datei in $(ls *.*); do SetFile <deine parameter> $datei; done

Klappt in der Form allerdings nur bei Dateinamen ohne Leerzeichen.
Semikolon führt einfach nur Befehle hintereinander aus, Pipe (|) ist dazu da, die Ausgabe eines Befehls als Eingabe in den nächsten Befehl "weiterzugeben"

Oder eben

find <pfad> -name *.* -exec SetFile <deine parameter> {} \;
Arbeitet aber auch rekursiv mit allen Dateien unterhalb des angegebenen Ordners!
man find ... liefert da noch mehr Infos zu
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: DrNibbert
Dann greif besser zu einer App mit grafischer Bedienoberfläche:
Klar, das ist natürlich einfacher.
Ansonsten wenns im Terminal sein soll erst auf einem Spielsystem testen und/oder ein echo vor SetFile setzen für einen "Trockenlauf"
 
Ach cool, danke! Dann werd ich mir mal das BetterFinderAttributes anschauen, das BetterFinderRename benutze ich fast täglich, wusste garnicht dass es das auch für Attribute gibt :)

Will zwar mal meine Terminal-Skills ausbauen, aber dann vll nicht heute :-D

Ansonsten könnte ich aber dieses hier einfach so ins Terminal eingeben (natürlich die entsprechenden Pfade und Parameter ändern) ? Geht das dann auch mit Leerzeichen?
find <pfad> -name *.* -exec SetFile <deine parameter>{} \;

Da bekomme ich nämlich die Fehlermeldung
find: -exec: no terminating ";" or "+"
 
Code:
find . -type f -print0 | xargs -0 -n1 echo SetFile -d '01/20/2020 00:11:22'

print0 und xargs -0 sorgt für die Leerzeichen
Das n1 übergibt immer nur eine Datei
Das echo muss natürlich weg

Habe ich in einem Verzeichnis getestet.
 
  • Gefällt mir
Reaktionen: DrNibbert
Zurück
Oben Unten