Verzeichnis in Alias angeben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
kuahmelcher
Beiträge: 34
Registriert: 08.04.2014 17:06:40

Verzeichnis in Alias angeben

Beitrag von kuahmelcher » 16.09.2014 21:16:54

Guten Abend,

ich habe da 'ne Frage. Ich bastle mir seit geraumer Zeit diese wunderbar praktischen Aliases. Jetzt möchte ich eine Datei bzw. ein Verzeichnis automatisch in meine OwnCLoud kopieren. Aber es hakt.

Mein bisheriger Ansatz:

Code: Alles auswählen

alias oc="/owncloud/files/"
und dann:

Code: Alles auswählen

cp datei.xyz oc
funktioniert nicht, weil der cp-Befehl vor meinem Alias ausgeführt wird. Ergebnis: ich kopiere die Datei.xyz im gleichen Verzeichnis zu einer Datei namens "oc".

Zweiter Ansatz:

Code: Alles auswählen

alias oc="cp -r datei.xyz /owncloud/files/"
funktioniert auch nicht, weil er natürlich immer die gleiche Datei kopiert ... *hmpf*

Wer kann helfen?

Danke und Gruß, kuahmelcher

linuxCowboy
Beiträge: 287
Registriert: 05.02.2013 19:47:41

Re: Verzeichnis in Alias angeben

Beitrag von linuxCowboy » 16.09.2014 21:31:29

kuahmelcher hat geschrieben:Ich bastle mir seit geraumer Zeit diese wunderbar praktischen Aliases...
du sagst es! ;-)

Code: Alles auswählen

alias oc="cp -rvt /owncloud/files/"

oc datei.xyz
`datei.xyz' -> `/owncloud/files/datei.xyz'
-der_linux_cowboy --- Besser werden! ... f*** w$$

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Verzeichnis in Alias angeben

Beitrag von Meillo » 16.09.2014 22:17:32

kuahmelcher hat geschrieben: Mein bisheriger Ansatz:

Code: Alles auswählen

alias oc="/owncloud/files/"
und dann:

Code: Alles auswählen

cp datei.xyz oc
funktioniert nicht,
Sowas kann die zsh. Das nennt sich AFAIR ``global aliases''. Man sollte damit aber aufpassen, denn dann kannst du `oc' nirgends sonst mehr als Wort in der Shell verwenden.

Normalreweise werden Aliase nur im ersten Wort interpraetiert.
Zweiter Ansatz:

Code: Alles auswählen

alias oc="cp -r datei.xyz /owncloud/files/"
funktioniert auch nicht, weil er natürlich immer die gleiche Datei kopiert ... *hmpf*
Wie waere es mit einer Funktion:

Code: Alles auswählen

oc() {
	cp -r "$@" /owncloud/files
}
... oder einem Shellscript:

Code: Alles auswählen

#!/bin/sh
cp -r "$@" /owncloud/files
Use ed once in a while!

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Verzeichnis in Alias angeben

Beitrag von Cae » 17.09.2014 02:53:12

Die bisherigen Antworten gehen alle auf den alternativen Ansatz, zu
kuahmelcher hat geschrieben:Mein bisheriger Ansatz:

Code: Alles auswählen

alias oc="/owncloud/files/"
und dann:

Code: Alles auswählen

cp datei.xyz oc
funktioniert nicht, weil der cp-Befehl vor meinem Alias ausgeführt wird. Ergebnis: ich kopiere die Datei.xyz im gleichen Verzeichnis zu einer Datei namens "oc".
gaebe es noch diese Variante:

Code: Alles auswählen

$ oc='/owncloud/files/'
$ cp file $oc
-- also eine Shell-Variable anstatt einem Alias. Ich wuerde aber trotzdem die Variante mit "Veroeffentlichungs-Shell-Funktion" verwenden, da kann man z.B. nicht versehentlich das Dollarzeichen $ vergessen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten