GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie _MOVE_ Dateien mit scp?

Lösung 1:

rsync über ssh ist wahrscheinlich die beste Wahl mit --remove-source-files Möglichkeit

rsync -avz --remove-source-files -e ssh /this/dir [email protected]:/remote/dir 

ein Schnelltest ergibt;

[[email protected] ~]$ mkdir test1
[[email protected] ~]$ mkdir test2
[[email protected] ~]$ touch test1/testfile.1
[[email protected] ~]$ ls test1/
testfile.1
[[email protected] ~]$ rsync --remove-source-files -av -e ssh test1/testfile.1 [email protected]:/home/tomh/test2/
sending incremental file list

sent 58 bytes  received 12 bytes  10.77 bytes/sec
total size is 0  speedup is 0.00

[[email protected] ~]$ ls test1/
[[email protected] ~]$
[[email protected] ~]$ ls test2/
testfile.1

Wie @SvenW erwähnt hat, -e ssh ist die Standardeinstellung und kann weggelassen werden.

Lösung 2:

Verwenden Sie rsync statt scp :

rsync -avz --remove-source-files /sourcedir [email protected]:/targetdir 

Mehr Infos mit man rsync .

Lösung 3:

Diese Frage wurde gut beantwortet und die Antwort wurde akzeptiert, aber da sie oben auf der Titelseite schwebte, dachte ich, ich würde zumindest versuchen, sie genauer, wenn auch weniger elegant, zu beantworten. Ja, Sie können den Rückgabecode von scp verwenden , und ich mache es oft. In bash :

scp foo [email protected]:/destination && rm foo

Ich verstehe Ihren Standpunkt zum Kopieren mehrerer Dateien und zum korrekten Umgang mit Fehlern im Stapel, also für mehrere Dateien:

for file in bar*; do scp "$file" [email protected]:/destination && rm "$file" ; done

Letzteres ist nur praktisch, wenn Sie ssh-agent verwenden , aber ich hoffe sehr, dass Sie es sind.

Lösung 4:

In meiner Situation ist der SSH-Port nicht 22, also

rsync -avz --remove-source-files -e "ssh -p $portNumber" [email protected]:/path/to/files/ /local/path/

funktioniert für mich.

Lösung 5:

Wenn Sie wie ich einen älteren Zielserver haben, können Sie

nicht verwenden
--remove-source-files

aber Sie müssen verwenden

--remove-sent-files --protocol=29

stattdessen.


Linux
  1. So entpacken Sie Dateien unter Linux (mit Beispielen)

  2. Wie finde ich Dateien mit einem bestimmten Unterpfad?

  3. So übertragen Sie Dateien sicher mit SCP

  4. So finden Sie Dateien mit dem fd-Befehl in Linux

  5. Kopieren Sie Dateien mit SCP und Rsync

So finden Sie Dateien mit dem fd-Befehl in Linux

So laden Sie Dateien mit dem Curl-Befehl unter Linux herunter

So laden Sie Dateien mit dem Wget-Befehl unter Linux herunter

So laden Sie Dateien mit FileZilla hoch

So übertragen Sie Dateien mit Commander One

Sicheres Kopieren von Dateien mit dem SCP-Befehl