Wie kann festgestellt werden, ob cp -u die Datei tatsächlich kopiert hat?

Wie kann festgestellt werden, ob cp -u die Datei tatsächlich kopiert hat?

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 echogibt das Skript für jede kopierte Datei eine kleine Meldung aus.

Nun möchte ich das Skript so ändern, dass es echonur ausgeführt wird, wenn die Datei tatsächlich aktualisiert wurde. Ich habe überprüft, ob cp -uein 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

verwandte Informationen