Hi,
ich möchte gerne einen alias anlegen, der auch eine Variable akzeptiert. Damit ich also z.B. statt
tar xzfp MEIN-ARCHIV.tar.gz
folgendes eingeben kann:
untar MEIN-ARCHIV.tar.gz
Hat jemand eine Idee hierzu?
HAND
![]() Anmeldungsdatum: Beiträge: 692 Wohnort: Bochum |
Hi, ich möchte gerne einen alias anlegen, der auch eine Variable akzeptiert. Damit ich also z.B. statt
folgendes eingeben kann:
Hat jemand eine Idee hierzu? HAND |
||
Anmeldungsdatum: Beiträge: 2377 |
Ist jetzt nicht die Antwort… aber vielleicht solltest du mal unp ausprobieren… |
||
![]() Anmeldungsdatum: Beiträge: 3443 Wohnort: 97070 Würzburg |
Ich würde sowas einfach mit ner Funktion machen
|
||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 692 Wohnort: Bochum |
Unp kenne ich schon. Ist aber nicht ganz das was ich will, da es nicht so plattformübergreifend verfügbar ist, wie tar. Das mit der Funktion klappt super. Nur fehlte da ein Semikolon, sonst kommt die Meldung: "unerwartetes Zeilenende". Muss also so in der .bashrc stehen:
|
||
Anmeldungsdatum: Beiträge: 2 |
Aloha, ich habe im moment ein ähnliches problem. Ich suche eine möglichkeit mir einen alias (sls) anzulegen der wie folgt genutzt werden soll: "sls <var>" ausgeführt werden soll "ls /dir1/dir2/dir3/<var>/dir4/dir5" Über hilfe würde ich mich freuen. Grüße JRipper |
||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 692 Wohnort: Bochum |
JRipper schrieb:
Das sollte doch mit der Funktion auch klappen. Du setzt einfach die Variable in die Mitte deiner vorgegebenen Zeichenketten. |
||
Anmeldungsdatum: Beiträge: 2 |
oh, hatte das irgendwie total überlesen. danke dir, klappt wunderbar ☺ |
||
![]() Anmeldungsdatum: Beiträge: 4534 |
peefonic schrieb:
Greebo schrieb:
ich hab in meiner .bashrc folgendes und erschlag damit eigentlich so ziemlich alles, was es bisher zu entpacken gab 😉 # extract File #---------------- function extract() { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via >extract<" ;; esac else echo "'$1' is not a valid file" fi } mit extract datei.foo entpackt es dann (oder auch nicht, dann gibt es die Meldung) |
||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 692 Wohnort: Bochum |
Antiqua schrieb:
Dafür kannst du auch einfach unp installieren. Bei mir war wichtig, dass ich einen einfachen Befehl habe, der auf meinem Server läuft (wo ich mich nicht für unp mit jailkit herumschlagen will; bin ungern root). HAND |
||
![]() Anmeldungsdatum: Beiträge: 4534 |
peefonic schrieb:
Warum soll ich mir ein zusätzliches perl-Script instalieren, wenn eine einfache bash-funktion auch tun? Und was hat das mit root zu tun? Die Funktion liegt in der .bashrc des Users. Und den einfachen Befehl hast du genau damit. Die .bashrc wird ja beim einloggen gesourced. Du wechselst in das Verzeichnis und brauchst dann nur einfach extract irgendwasgepacktes.xyz ausführen und das Archiv wird entpackt. Vorteil, du musst dich nicht mit den verschiedenen Programmen und deren Optionen herumschlagen. Noch ein Edith angefügt. |
||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 692 Wohnort: Bochum |
|||
![]() Anmeldungsdatum: Beiträge: 4534 |
peefonic schrieb:
ich verstehe es immer noch nicht. Die Funktion erweitert einfach nur den Befehlssatz für die bash. Ahnlich wie ein alias. Das hat nix mit unp zu tun, absolut garnix. extract prüft, ob das File ein File ist und ruft einfach nur das passende Packprogram zum entpacken des Files auf. Und das passende Packprogramm wird einfach durch die Endung des Files rausgefunden. Wenn die Endung nicht bekannt ist, kommt eine Meldung. Wenn das File kien File ist, kommt eine Meldung 😉
ja, unp ist "nur" ein perl-Script antiqua@slacker:~/Downloads/unp-1.0.15$ head unp #! /usr/bin/perl # Maintained by Eduard Bloch <edi@ka.linux.de> # http://www.eduard.bloch.com/edecosi/unp.en.html # # Originaly written by A. Karwath, 1997 # andre.karwath@informatik.tu-chemnitz.de # http://www.aka-online.de # # "unp" runs the correct unpack program depending on the file extension Edith: und das im Paket enthaltene ucat, das von unp benötigt wird, ist auch "nur" ein perl-Script und einfach nur ein wrapper antiqua@slacker:~/Downloads/unp-1.0.15$ head ucat #! /usr/bin/perl # Maintained by Eduard Bloch <edi@ka.linux.de> # # "ucat" is a wrapper for zcat, bzcat, zip, tar. It runs the correct unpack # program depending on the file extension or the detected file contents. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or |
||
![]() Anmeldungsdatum: Beiträge: 5051 Wohnort: Mönchengladbach |
Antiqua schrieb: [...]
Ich würde das jetzt nicht gerade extract nennen, da es so eine Binary schon gibt. Zwar nicht vorinstalliert, aber eventuell vorhanden |
||
![]() Anmeldungsdatum: Beiträge: 4534 |
freebirth one schrieb:
guter Einwand. Mir war bisher nicht bewusst, das es ein Binary "extract" gibt. Bei mir auf den Systemen sowieso nicht, da ich bevor so eine Funktion in die .bashrc wandert immer nachprüfe, ob der Name noch frei ist. Aber es is ja wurscht, wie man die Funktion tituliert. Man kann sie ja auch free_the_source nennen oder zackzack oder entquetsch oder so 😉 und komm mir jetz nicht mit entquetsch gibts schon 😀 |
||
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 692 Wohnort: Bochum |
Antiqua schrieb:
Wie geht das? |