Wie überprüfe ich, ob eine Datei auf dem Remote-SFTP-Server vorhanden ist, bevor ich sie kopiere und lösche?

Wie überprüfe ich, ob eine Datei auf dem Remote-SFTP-Server vorhanden ist, bevor ich sie kopiere und lösche?

Ich verwende Standard-SFTP unter Linux und möchte vor der Ausführung meines Skripts prüfen, ob sich eine Datei im Dateiordner befindet.

Mein Skript ruft nur alle TXT-Dateien im Dateiordner ab und müsste sie anschließend löschen (da ich mit SFTP Dateien nur kopieren, aber nicht ausschneiden kann).

Dies wäre mein Skript:

Es kopiert alle TXT-Dateien von Laufwerk E und speichert sie dann im lokalen/eingehenden Ordner:

#!/bin/bash
get /E:/*.TXT /local/inbound
rm /E:/*.TXT
bye

Der Grund für meine Frage ist, dass ich nicht möchte, dass mein Skript zum Entfernen von Dateien ausgeführt wird, wenn sich keine Datei im Ordner befindet, da es passieren kann, dass zwischen dem Kopieren und Löschen eine Datei in den Ordner E: eingefügt wird.

Antwort1

Ich bin nicht sicher, ob ich Ihre Frage richtig verstehe, aber wie wäre es damit:

scp ./test.txt usename@host:/tmp && rm ./test.txt

Es kopiert die Datei test.txt und entfernt die Datei, wenn der SCP-Befehl erfolgreich ist.

verwandte Informationen