2016-05-28 12 views
0

ich häufig verwendenscp Befehl Änderung Alias ​​

scp -r [email protected]_ip:/Data_folder/ 

Daten von einem entfernten Server SuperCom einen Ordner zum Download bereit.

Immer dasselbe zu schreiben ist ziemlich ermüdend.

Kennt jemand einfach diesen Befehl mit Alias ​​zu verwenden? Bedenken Sie, dass Data_folder jedes Mal geändert wird.

Antwort

1

Alias ​​kann einen Teil eines Wortes nicht ersetzen. Sie können eine Funktion erstellen, aber:

myscp() { 
    scp -r [email protected]_ip:/"$1"/ 
} 

Dann, gerade myscp Data_folder nennen.

Auch scp (zumindest auf meinem System) benötigt auch den Zielordner. Sie können . als dann nächsten Parameter zum Befehl in der Funktion hinzufügen oder verwenden und beim Ausführen der Funktion in der Befehlszeile angeben.

1

Sie können eine Bash-Datei in einem Ihrer $ PATH-Ordner erstellen.

#! /bin/bash 
scp -r [email protected]_ip:"$1" "$2" 

Nennen wir das Skript myscp.

Statt die ganze Zeile schreiben Sie geschrieben haben, können Sie

myscp /home/file.txt /home/file2.txt 
1

schreiben Sie können nicht Setup ein Alias ​​ein Argument zu nehmen. So haben Sie eine Funktion erstellen müssen und dann werden Sie in der Lage sein scp Aliasnamens zu diesem

function super_scp() { 
    scp -r [email protected]_ip:${1} ${2} 
} 

alias scp=super_scp 

Dann werden Sie in der Lage sein, es zu benutzen mag:

scp /path/to/folder /destination 
+0

Wo definieren Sie diese Funktion? –

+0

Es kann in der '.bashrc'-Datei platziert werden, so dass es automatisch bei der Anmeldung bezogen wird. – bmcculley

+0

Aliase in bashrc ist nicht ganz zu empfehlen mate: P Es wäre besser, Aliase in bash_profile zu erstellen oder bash_aliases zu erstellen –

2

Sie sollten sich überlegen Einstellung up ssh config:

Host myServer 
    HostName remoteserver_ip 
    User id 

Und vielleicht ein identity file auch hinzufügen Passwort eingeben zu vermeiden, dass:

Host myServer 
    ... 
    IdentityFile ~/.ssh/my_id 

Jetzt können Sie schreiben:

scp -r myServer:/something 

Von der Ursache Sie können - wie von anderen Antworten vorgeschlagen - fügen Sie eine Funktion, um Ihre ~/.bashrc:

my_scp() { 
    scp -r myServer:"$1" 
} 

Und dann rufen:

my_scp /something