Bash Script Programmierung?
Ich bin dabei an einem Bash Script zu Programmieren und bin absoluter Anfänger.
Ich muss alle Dateien, die in dem Verzeichnis älter als 1 Jahr sind archivieren. Dazu muss ich erst die Dateien filtern. (das klappt soweit) und danach die Verzeichnisnamen von den Dateien die gefiltert werden in eine Textdatei schreiben.
Hat jemand eine Ahnung wie das gemacht wird?
Hier der Code bis jetzt:
#1/bin/bash
cd project6/subversion
find . -name current -and -atime +365 -type f
2 Antworten
Wieso die Verzeichnisnamen und nicht die Dateien?
man dirname
Du kannst natürlich auch sed mit RegEx drauf loslassen oder direkt die Funktionen der Shell nutzen, das aber nur am Rande.
Du könntest die Namen in eine Textdatei pipen, mit >
find . -name current -and -atime +365 -type f > directories.txt
Oder hab ich das falsch verstanden? :D
Oh, achso, sorry! Dann könnte folgendes passen:
for f in $(find . -name current -and -atime +365 -type f); do (dirname $f) >> directories.txt; done
Also erstmal danke für die schnelle Antwort. Momentan filtere ich ja nur die Dateien die älter sind als 1 Jahr im Verzeichnis. Ich soll quasi nicht die gefilterten Dateinamen in eine Textdatei schreiben sondern der Verzeichnisname in der sich die Datei befindet.