
Ich suche nach einer einfachen Möglichkeit, um zu überprüfen, ob eine Datei mit kopiert wurde cp -u
.
Ich habe ein kleines Shell-Skript, das eine ganze Reihe von Dateien aktualisiert. Im Moment echo
gibt das Skript für jede kopierte Datei eine kleine Meldung aus.
Nun möchte ich das Skript so ändern, dass es echo
nur ausgeführt wird, wenn die Datei tatsächlich aktualisiert wurde. Ich habe überprüft, ob cp -u
ein Fehlercode zurückgegeben wird, wenn die Datei nicht kopiert wurde, aber das ist nicht der Fall.
Gibt es eine bessere Möglichkeit, als die Zeitstempel der Dateien manuell zu vergleichen?
Antwort1
if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi
Aktualisieren
Übereinstimmung mit "->" in der ausführlichen Ausgabe von cp. Dies tritt nur auf, wenn es erfolgreich kopiert werden konnte und wenn Ihre Dateinamen kein "->" enthalten.
if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi