.titleBar { margin-bottom: 5px!important; }

Reiehenfolge von Optionen/Kommandozeilenparametern bei Linux Kommandos

Dieses Thema im Forum "Linux allgemein" wurde erstellt von Boondock Saint, 23 Sep. 2008.

  1. Boondock Saint

    Boondock Saint Neuer User

    Registriert seit:
    7 Sep. 2008
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Elektroniker
    Ort:
    Freising
    Ok hat soweit alles ganz gut geklappt. Hab noch die letzte stable firware drauf. Anscheinend muss man bei der,dem usb stick mit dem fb wif lese und schreib rechte geben. Welche Möglichkeit gibt es denn den Asterisk Server automatisch zu starten auch wenn jetzt die fritzbox mal ganz aus ist.

    PS: spielt es in Linux tatsächlich eine Rolle in welcher Reihenfolge man die Parameter nach einem Befehl schreibt?
     
  2. Lupus caoticus

    Lupus caoticus Neuer User

    Registriert seit:
    10 Dez. 2007
    Beiträge:
    137
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Fachinformatiker-Systemintegration
    #2 Lupus caoticus, 24 Sep. 2008
    Zuletzt bearbeitet: 27 Sep. 2008
    Sicher bei den meisten Programmen schon.
    schau dir doch nur mal die help an von den meisten Konsolenbefehlen.

    z.b. Tar:
    Code:
    tar --help
    Aufruf: tar [OPTION...] [DATEI]...
    GNU „tar“ fasst viele Dateien in einem einzigen Archiv auf Platte oder
    Band
    zusammen und kann einzelne Dateien aus dem Archiv wieder herstellen.
    
    Beispiele:
      %s -cf archiv.tar foo bar  # archiv.tar mit den Dateien foo und bar
    erzeugen
      %s -tvf archiv.tar         # Inhalt von archiv.tar ausführlich
    anzeigen
      %s -xf archiv.tar          # alle Dateien aus archiv.tar extrahieren
    
     Hauptsächlicher Arbeitsmodus:
    
      -A, --catenate, --concatenate   tar-Dateien an ein Archiv anfügen
      -c, --create               ein neues Archiv anlegen
      -d, --diff, --compare      Unterschiede zwischen Archiv und
    Dateisystem
                                 suchen
          --delete               aus dem Archiv löschen (nicht auf
    Magnetband!)
      -r, --append               Dateien hinten an das Archiv anfügen
      -t, --list                 den Inhalt eines Archivs auflisten
          --test-label           den Archiv-Teil-Namen überprüfen und
    beenden
      -u, --update               nur Dateien anfügen, die neuer als die
    Kopie im
                                 Archiv sind
      -x, --extract, --get       Dateien aus einem Archiv extrahieren
    
     Feineinstellungen:
    
      -g, --listed-incremental=DATEI   inkrementelle Sicherung im neuen
    GNU-Format
      -G, --incremental          inkrementelle Sicherung im alten GNU-Format
          --ignore-failed-read   kein Abbruch mit Existatus!=0 bei
    unlesbaren
                                 Dateien
      -n, --seek                 im Archiv kann positioniert werden
          --occurrence[=ZAHL]    nur das ZAHLte Auftreten jeder Datei im
    Archiv
                                 bearbeiten; diese Option kann nur zusammen
    mit
                                 einem der Arbeitsmodi --delete, --diff,
    --extract
                                 oder --list und wenn eine Dateiliste
    entweder auf
                                 der Kommandozeile oder mittels der Option
    -T
                                 angegeben wurde benutzt werden; Zahl ist
                                 standardmäßig 1
          --sparse-version=MAJOR[.MINOR]
                                 zu benutzende Version des Sparse-Formats
    setzen
                                 (impliziert --sparse)
      -S, --sparse               löchrige Dateien („sparse files“) effizient
                                 behandeln
    
     Steuerung des Überschreibens:
    
      -k, --keep-old-files       vorhandene Dateien beim Extrahieren nicht
                                 überschreiben
          --keep-newer-files     vorhandene Dateien, die neuer als die
    Archivkopie
                                 sind, nicht überschreiben
          --no-overwrite-dir     Metadaten existierender Verzeichnisse
    erhalten
          --overwrite            vorhandene Dateien beim Extrahieren
                                 überschreiben
          --overwrite-dir        Metadaten existierender Verzeichnisse beim
                                 Extrahieren überschreiben (Voreinstellung)
          --recursive-unlink     Verzeichnishierarchien rekursiv vor dem
                                 Extrahieren eines Verzeichnisses löschen
          --remove-files         Dateien nach dem Hinzufügen zum Archiv
    löschen
      -U, --unlink-first         zu überschreibende Dateien vor dem
    Extrahieren
                                 löschen
      -W, --verify               Archiv nach dem Schreiben prüfen
    
     Wahl des Ausgabestroms:
    
          --ignore-command-error Exitstatus der Kinder ignorieren
          --no-ignore-command-error   Exitstatus!=0 von Kindern als Fehler
    ansehen
      -O, --to-stdout            Dateien auf die Standardausgabe extrahieren
          --to-command=BEFEHL    extrahierte Dateien an ein anderes Programm
                                 weiterreichen
    
     Behandlung der Datei-Attribute:
    
          --atime-preserve[=METHODE]   Zugriffszeit für abgespeicherte
    Dateien
                                 erhalten, entweder durch Zurücksetzen der
    Zeiten
                                 nach dem Lesen (METHODE=„replace“,
                                 Voreinstellung) oder dadurch, dass die
    Zeiten gar
                                 nicht erst neu gesetzt werden
                                 (METHODE=„system“)
          --delay-directory-restore   das Setzen von Zugriffszeiten und
    Rechten von
                                 extrahierten Verzeichnissen verschieben bis
    zum
                                 Ende des Entpackens
          --group=NAME           Gruppe für hinzugefügte Dateien auf NAME
    setzen
          --mode=ÄNDERUNGEN     den (symbolischen) Modus ÄNDERUNGEN für
                                 hinzugefügte Dateien erzwingen
          --mtime=DATUM-ODER-DATEI   Änderungszeit für hinzugefügte Datei
    aus
                                 DATUM-ODER-DATEI beziehen
      -m, --touch                die geänderte Zeit nicht extrahieren
          --no-delay-directory-restore
                                 den Effekt von --delay-directory-restore
    aufheben
          --no-same-owner        Dateien als aktueller Nutzer extrahieren
          --no-same-permissions  die Umask des Nutzers anwenden beim
    Extrahieren
                                 von Dateizugriffsrechte aus dem Archiv
                                 (Voreinstellung für normale Nutzer)
          --numeric-owner        immer Zahlen für Nutzer-/Gruppennamen
    verwenden
          --owner=NAME           Eigentümer für hinzugefügte Dateien auf
    NAME
                                 setzen
      -p, --preserve-permissions, --same-permissions
                                 Informationen über Dateizugriffsrechte mit
                                 extrahieren (Voreinstellung für Root)
          --preserve             wie -p und -s zusammen
          --same-owner           versuchen, die Dateien mit denselben
                                 Eigentumsverhältnisse zu extrahieren
      -s, --preserve-order, --same-order
                                 zu entpackende Dateinamen wie im Archiv
    sortieren
    
     Geräteauswahl und -umschaltung:
    
      -f, --file=ARCHIV          Archivdatei oder Gerät ARCHIV benutzen
          --force-local          Archivdatei ist lokal, auch wenn der Name
    einen
                                 Doppelpunkt enthält
      -F, --info-script=NAME, --new-volume-script=NAME
                                 am Ende jedes Mediums das Skript ausführen
                                 (impliziert -M)
      -L, --tape-length=ZAHL     Medium wechseln, wenn ZAHL × 1024 Bytes
                                 geschrieben wurden
      -M, --multi-volume         mehrteiliges Archiv
    anlegen/listen/extrahieren
          --rmt-command=BEFEHL   statt „rmt“ den gegebenen BEFEHL benutzen
          --rsh-command=BEFEHL   statt „rsh“ den entfernten BEFEHL benutzen
          --volno-file=DATEI     Teil-Nummer in DATEI benutzen/aktualisieren
    
     Blockung des Gerätes:
    
      -b, --blocking-factor=BLÖCKE   BLÖCKE × 512 Bytes pro Record
      -B, --read-full-records    erneut Blocken beim Lesen (für 4.2BSD‐
    Pipes)
      -i, --ignore-zeros         Blöcke mit Nullen im Archiv ignorieren
    (heißt
                                 EOF)
          --record-size=ZAHL     ZAHL Bytes pro Record, Vielfaches von 512
    
     Auswahl des Archiv-Formats:
    
      -H, --format=FORMAT        Archiv mit dem gegebenen Format anlegen
    
     FORMAT ist eines der folgenden:
    
        gnu                      GNU-tar-1.13.x-Format
        oldgnu                   GNU-Format wie mit tar <=1.12
        pax                      Format von POSIX 1003.1-2001 (pax)
        posix                    wie pax
        ustar                    Format von POSIX 1003.1-1988 (ustar)
        v7                       altes V7-tar-Format
    
      -j, --bzip2                Archiv durch bzip2 filtern
          --old-archive, --portability
                                 wie --format=v7
          --pax-option=Schlüsselwort[[:]=Wert][,Schlüsselwort[[:]=Wert]]...
                                 Pax-Schlüsselwörter steuern
          --posix                wie --format=posix
          --use-compress-program=PROG
                                 durch PROG filten (muss -d akzeptieren)
      -V, --label=TEXT           Archiv mit dem Teilnamen TEXT anlegen; beim
                                 Listen/Extrahieren, TEXT als Muster für den
                                 Teilnamen benutzen
      -z, --gzip, --gunzip, --ungzip   Archiv durch gzip filtern
      -Z, --compress, --uncompress   Archiv durch COMPRESS filtern
    
     Auswahl der lokalen Dateien:
    
          --add-file=DATEI       angegebene Datei zum Archiv hinzufügen
                                 (nützlich, wenn Datei mit einem Strich
    beginnt)
          --backup[=KONTROLLE]   Sicherung vor dem Entfernen, wähle
                                 Versions-KONTROLLE
      -C, --directory=VERZEICHNIS   zu VERZEICHNIS wechseln
          --exclude=MUSTER       Dateien auslassen, auf die MUSTER passt
          --exclude-caches       Inhalt von Verzeichnissen auslassen, die
                                 CACHEDIR.TAG enthalten, außer der
                                 Markierungsdatei selbst
          --exclude-caches-all   Verzeichnisse auslassen, die CACHEDIR.TAG
                                 enthalten
          --exclude-caches-under alles unterhalb von Verzeichnissen
    auslassen, die
                                 CACHEDIR.TAG enthalten
          --exclude-tag=DATEI    Inhalt von Verzeichnissen auslassen, die
    DATEI
                                 enthalten, außer DATEI selbst
          --exclude-tag-all=DATEI   Verzeichnisse auslassen, die DATEI
    enthalten
          --exclude-tag-under=DATEI   alles unterhalb von Verzeichnissen
    auslassen,
                                 die DATEI enthalten
          --exclude-vcs          exclude version control system directories
      -h, --dereference          symbolischen Verknüpfungen folgen; die
                                 verwiesenen Dateien archivieren und
    abspeichern
      -K, --starting-file=ELEMENT-NAME
                                 mit ELEMENT-NAME im Archiv beginnen
          --newer-mtime=DATUM    Datum und Zeit nur überprüfen, wenn Daten
                                 geändert wurden
          --no-recursion         automatischen Abstieg in Vezeichnisse
    vermeiden
          --no-unquote           Dateinamen, die mit -T gelesen werden,
    nicht von
                                 Zitat befreien
          --null                 -T liest null-terminierte Namen, verbiete
    -C
      -N, --newer=DATUM-ODER-DATEI, --after-date=DATUM-ODER-DATEI
                                 nur Dateien ablegen, die neuer als
                                 DATUM-ODER-DATEI sind
          --one-file-system      beim Anlegen eines Archivs im lokalen
    Dateisystem
                                 bleiben
      -P, --absolute-names       führende „/“-Zeichen in den Dateinamen
                                 erhalten
          --recursion            in Verzeichnisse absteigen (Voreinstellung)
          --suffix=ZEICHENKETTE  Sicherung vor dem Entfernen, übliches
    Suffix
                                 ersetzen („~“, wenn nicht durch
                                 Umgebungsvariable SIMPLE_BACKUP_SUFFIX
    anders
                                 gesetzt)
      -T, --files-from=DATEI     Namen der zu bearbeitenden Dateien aus
    DATEI lesen
                                
          --unquote              Dateinamen, die mit -T gelesen werden, von
    Zitat
                                 befreien (Voreinstellung)
      -X, --exclude-from=DATEI   Dateien auslassen, auf die in DATEI
    angegebene
                                 Muster passen
    
     Dateinamentransformationen:
    
          --strip-components=ZAHL   ZAHL führende Komponenten beim
    Extrahieren von
                                 Dateinamen entfernen
          --transform=AUSDRUCK   den sed-AUSDRUCK zur
    Dateinamentransformation
                                 benutzen
    
     Dateinamenauswahloptionen (sowohl für ein- als auch ausschließende
    Muster):
    
          --anchored             Muster am Dateinamensanfang ausrichten
          --ignore-case          Groß-/Kleinschreibung ignorieren
          --no-anchored          Muster passen nach jedem
    „/“ (Voreinstellung
                                 beim Ausschluss)
    
    
          --no-ignore-case       Groß-/Kleinschreibung beachten
    (Voreinstellung)
          --no-wildcards         Zeichenketten sind buchstabengetreu
          --no-wildcards-match-slash   Jokerzeichen passen nicht auf „/“
          --wildcards            Muster benutzen (Voreinstellung für
    Ausschluss)
          --wildcards-match-slash   Jokerzeichen passen auf
    „/“ (Voreinstellung
                                 für Ausschluss)
    
     Informationen:
    
          --checkpoint[=[.]ZAHL] Fortschrittsnachrichten bei jedem ZAHLten
    Record
                                 (Voreinstellung 10) anzeigen
          --index-file=DATEI     ausführliche Ausgabe in DATEI schreiben
      -l, --check-links          eine Nachricht ausgeben, wenn nicht alle
                                 Verknüpfungen abgespeichert werden
          --no-quote-chars=ZEICHENKETTE
                                 Zeichen aus ZEICHENKETTE nicht zitieren
                                       --quote-chars=ZEICHENKETTE
    zusätzliche Zeichen aus ZEICHENKETTE
                                 zitieren
          --quoting-style=STIL   Zitatstil setzen; siehe unten für gültige
                                 STIL-Werte
      -R, --block-number         bei jeder Nachricht die Blocknummer
    innerhalb des
                                 Archivs mit anzeigen
          --show-defaults        Voreinstellungen von tar anzeigen
          --show-omitted-dirs    beim Listen oder Extrahieren jedes
    Verzeichnis
                                 auflisten, dass nicht den Suchkriterien
    entspricht
          --show-transformed-names, --show-stored-names
                                 Datei- oder Archivnamen nach der
    Transformation
                                 anzeigen
          --totals[=SIGNAL]      Gesamtzahl der Bytes nach dem Bearbeiten
    des
                                 Archivs anzeigen; mit einem Argument –
                                 Gesamtzahl der Bytes anzeigen, wenn dieses
    SIGNAL
                                 ausgeliefert wird; erlaubte Signale sind:
    SIGHUP,
                                 SIGQUIT, SIGINT, SIGUSR1 und SIGUSR2; die
    Namen
                                 ohne das Präfix SIG sind auch erlaubt
          --utc                  Dateiänderungszeiten in UTC anzeigen
      -v, --verbose              bearbeitete Dateien ausführlich listen
      -w, --interactive, --confirmation
                                 für jede Aktion um Bestätigung bitten
    
     Kompatibilitätsoptionen:
    
      -o                         beim Anlegen wie --old-archive; beim
    Extrahieren
                                 wie --no-same-owner
    
     Weitere Optionen:
    
      -?, --help                 diese Hilfe ausgeben
          --restrict             möglicherweise schädliche Optionen
    deaktivieren
          --usage                eine kurze Benutzungsübersicht ausgeben
          --version              Programmversion ausgeben
    
    Erforderlich oder optionale Argumente für lange Optionen sind ebenso
    erforderlich bzw. optional für die entsprechenden Kurzoptionen.
    
    Die Namenserweiterung für Sicherheitskopien ist „~“, wenn nicht mit
    --suffix
    oder der Umgebungsvariablen SIMPLE_BACKUP_SUFFIX etwas anderes
    eingestellt
    ist.
    Die Versionskontrolle kann mit --backup oder der Umgebungsvariablen
    VERSION_CONTROL gesetzt werden. Mögliche Werte sind:
    
      none, off       niemals Sicherheitskopien anlegen
      t, numbered     nummerierte Sicherheitskopien
      nil, existing   nummerierte Sicherheitskopien, wenn schon nummerierte
                        vorhanden sind, sonst einfache
      never, simple   immer einfache Sicherheitskopien
    
    Gültige Argumente für die Option --quoting-style sind:
    
      literal
      shell
      shell-always
      c
      escape
      locale
      clocale
    
    *Dieses* „tar“ hat als Voreinstellung:
    --format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/sbin/rmt
    --rsh-command=/usr/bin/rsh
    
    Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <bug-tar@gnu.org>.
    

    Woher soll das Programm den sonst wissen welcher Parameter mit der
    Information gemeint ist.

    Wenn zum beispiel der 1te parameter das Ziel und der 2te die quelle ist
    geht es halt einfach nicht wenn du sie vertauscht oder es geht schief.

    is aber unter windows nicht anders.

    Naührlich gibt es auch Programme denen die Reienfolge wurst ist (unter
    win und unter Linux)

    z.b. mkdir 1 2
    legt verzeichnisse an, namlich Ordner 1 und ordner 2
    wenn du die Parameter vertaucht werden sie nur in einer anderen
    reihenfolge angelegt.


    Hmm... ja ich weiß das es nicht geht wenn man diese vertauscht.
    Warum nicht kann ich auch nicht sagen.
    aber wenn du es so machst wie in meiner How to beschrieben dann muss es gehen.

    Wenn du es genauer wissen wilst solltest du dich an ein Forum für Unix/Linux wenden.
     
  3. Boondock Saint

    Boondock Saint Neuer User

    Registriert seit:
    7 Sep. 2008
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Elektroniker
    Ort:
    Freising
    Das hab ich nicht gemeint sondern die parameter (Schalter) nach einem befehl
    also zb ob nachfolgendes einen unterschied macht: tar -xfv oder tar -vfx
     
  4. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    OT, und könnte in einen eigenen Thread ausgelagert werden.

    Das was Du hier meinst, wird normalerweise Optionen genannt, also das, was normalerweise nach einem Minuszeichen steht.

    Gibt es einen Grund für die Frage? Normalerweise ist man auf der sicheren Seite, wenn man sich an die Anleitung hält und nichts ändert, wenn man sich nicht ganz sicher ist.

    Die allgemeine Antwort ist, daß die Reihenfolge bei einigen Programmen wichtig ist und bei anderen nicht.

    Es gibt Optionen mit und ohne Parameter. Häufig (nicht immer) kann man Optionen ohne Parameter nach einem Minus-Zeichen zusammenfassen. Man kann auch Optionen ohne Parameter und ein Option mit Parameter zusammen fassen. Die Option mit Parameter muß dann als letzte stehen. Grund ist, daß bei Optionen mit Parameter der Parameter entweder durch Leerzeichen getrennt sein kann oder direkt im Anschluß.

    Beispiele:
    Code:
    strace -f -e file
    strace -f -efile
    strace -fe file
    strace -fefile
    
    Wenn man das umdrehen würde auf "-ef file", dann wäre "f" der Parameter zur Option "-e" und "file" hätte damit nichts mehr zu tun.

    Diese Beschreibung gilt für die GNU getopt Funktion, die von den meisten Programmen verwendet wird. Die "klassischen" Programme können auch etwas weniger Tolerant mit den Optionen sein.

    Bei tar ist das Ganze noch komplizierter. Man kann "tar -x" oder "tar x" (ohne Minuszeichen) schreiben. Und wenn man ohne Minuszeichen anfängt, dann kann man auch nacheinander mehrere Optionen angeben, die Parameter benötigen.

    Beispiel:
    Code:
    tar xvfC <Paramater_f> <Paramater_C>
    tar xvCf <Paramater_C> <Paramater_f>
    
    Und der erste Buchstabe beim Tar wählt die Operation aus, der muß auf jeden Fall an erster Stelle stehen. Je nach gewählter Operation sind verschiedene andere Optionen gültig oder auch nicht.

    Also nochmal zusammengefaßt: Halte Dich an die Anleitung, ober probiere selbst aus, was geht.