Ich arbeite an einem Skript, das NUR Dateien kopiert, die am letzten freien Tag erstellt wurden, in einen anderen Ordner. Das Problem, das ich habe, ist das Skript, mit dem ich alle Dateien im Quellverzeichnis kopiere, anstatt nur die Dateien, die weniger als einen Tag alt sind.
Das habe ich:
find . -mtime -1 -exec cp --preserve --parents -a "{}" /somefolder \;
Der obige Code kopiert alle Dateien im Quellverzeichnis. Wenn ich alle Argumente für 'cp' entferne, funktioniert es:
find . -mtime -1 -exec cp "{}" /somefolder \;
Der obige Code kopiert nur die neuesten Dateien, wie ich möchte, aber ich muss die Attribute mithilfe der cp-Argumente beibehalten.
Ich habe auch Variablen ausprobiert und für Schleifen gedacht, vielleicht war die Option -exec das Problem:
files="$(find -mtime -1)"
for file in "$files"
do
cp --parents --preserve -a file /somefolder
Die obige for-Schleife führt jedoch zu demselben Problem. Alle Dateien werden kopiert. Wenn ich $ files wiedergebe, werden nur die Dateien angezeigt, die ich benötige.
Wie kann ich das zum Laufen bringen?
find /sourcefolder -type f -mtime -1 -exec cp -a "{}" /somefolder \;