it-swarm.com.de

Wie kopiere ich alle Dateien mit scp aus einem Verzeichnis in ein Remote-Verzeichnis?

Mein Ziel ist es, nur zu kopieren alle Dateien von ~/local_dir nach [email protected]/var/www/html/target_dir using scp und erstelle keine local_dir-Kategorie in local_dir.

/var/www/html/target_dir/files..

aber nicht

/var/www/html/target_dir/local_dir/files.. bei Verwendung des Parameters -r

85
Edgaras Karka

scp hat das Argument -r. Versuchen Sie also Folgendes:

$ scp -r ~/local_dir [email protected]:/var/www/html/target_dir

Das Argument -r funktioniert genau wie das Argument -r in cp. Es überträgt Ihren gesamten Ordner und alle darin enthaltenen Dateien und Unterverzeichnisse.

123
parazyd

Wenn Sie alle Dateien von local_dir Übertragen möchten, reicht der Platzhalter * Aus:

$ scp ~/local_dir/* [email protected]:/var/www/html/target_dir

Die Option -r Bedeutet "rekursiv". Sie müssen sie also schreiben, wenn Sie versuchen, ein ganzes Verzeichnis oder mehrere Verzeichnisse zu übertragen.

Von man scp:

-r 
Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.

Wenn Sie also Unterverzeichnisse in local_dir Haben, überträgt das letzte Beispiel nur Dateien. Wenn Sie jedoch die Option -r Aktivieren, werden Dateien und Verzeichnisse übertragen.

24
tachomi

Anhängen von /. in Ihr Quellverzeichnis überträgt seinen Inhalt anstelle des Verzeichnisses selbst. Im Gegensatz zur Wildcard-Lösung umfasst dies auch alle versteckten Dateien.

$ scp -r ~/local_dir/. [email protected]:/var/www/html/target_dir

Der Verdienst für diese Lösung geht an roaima, aber ich dachte, sie sollte als tatsächliche Antwort und nicht nur als Kommentar veröffentlicht werden.

18
raphinesse

Folge diesen Schritten:

  1. Verzeichnis kopieren local_dir mit all seinen Unterverzeichnissen:

    scp -r ~/local_dir [email protected] /var/www/html/target_dir
    
  2. kopiere nur den Inhalt von local_dir und nicht das Verzeichnis local_dir selbst:

    scp -r ~/local_dir/* [email protected] /var/www/html/target_dir
    
  3. Verwende nicht: scp -r ~/local_dir/. [email protected] /var/www/html/target_dir da es einen Fehler auslöst (gerade getestet und den folgenden Fehler erhalten):

    scp: error: unexpected filename: .
    
3
Syed Faraz Umar