Danke für den Hinweis. Ist korrigiert.Inkodiktus hat geschrieben:@newdeb: Der eine Link mit Anker, der geht wohl nicht
[ Gelöst ] Wo ist die Dateinamenexpansion ???
-
- Beiträge: 134
- Registriert: 03.02.2011 11:11:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Frankfurt
Re: Wo ist die Dateinamenexpansion ???
Re: Wo ist die Dateinamenexpansion ???
Mit mkdir macht das keinen Sinn, aber mit rmdir z.B. Es geht darum, einen Teil der vorhandenen Dateien / Verzeichnisse als Argumente von touch, rmdir etc. anzugeben, ohne diese alle einzeln eintippen zu müssen. Wenn du z.B. nur die Verzeichnisse bla-1 bis bla-7 löschen möchtest, aber nicht bla-8 und bla-9:Inkodiktus hat geschrieben:Ja, touch ist nur ein Beispiel, genauso gut bzw. schlecht geht es mit mkdir nicht!4A4B hat geschrieben:Auch das hat meillo bereits erklärt:Inkodiktus hat geschrieben:Okay, ich kann mit touch t[es]t genau die Datei t[es]t erstellen, aber wozu dann dieses Feature, welches ich dann nicht so einsetzen kann???
Wenn sich in dem Verzeichnis, in welchem du den Befehl "touch t[es]t" ausführst, eine Datei mit dem Namen tet befindet, würde diese einen neuen Timestamp erhaltenmeillo hat geschrieben:Die Shell versucht passende Dateien zu finden (`tet' und `tst')
Oder macht er nur dann ein Verzeichnis, wenn es schon eins gab? *augenrollenmitverwirrtsein*
Ich versteh die Logik hinter [...] nicht.
Code: Alles auswählen
rmdir bla-[1-7]
Edit:
und falls es in dem obigen Beispiel das Verzeichnis bla-5 nicht gibt, dann gibt rmdir + Brace Expansion eine Fehlermeldung aus, rmdir + [..] hingegen nicht, weil bei letzterem nur die gefundenen Dateinamen als Argument übergeben werden
- Inkodiktus
- Beiträge: 702
- Registriert: 15.08.2013 01:15:35
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: » host@user╺─╸[~]
Re: [ Gelöst ] Wo ist die Dateinamenexpansion ???
@4A4B: Danke für die weitreichenden Infos!
Mein Fehler war, das [...] als eine gängige Expansion zu sehen, mit der ich alles expandieren kann.
Wildcards und Brace Expansion sind ja zwei verschiedene Sachen.
Wobei ich es für Schwachsinn erhalte, dass man das [...] und das {...} nehmen kann und dann noch mit anderen Zeichen!
Das sind dann "fast" 2 Möglichkeiten eine Sache zu machen, was ja bei manchen Befehlen zu Fehlermeldung führt!
Bei der ganzen Sache wird man nur bekloppt.
Ja, warum einfach machen, wenn es kompliziert ist. Jetzt ist mir klar, warum Linux so lange auf seine Erweckung warten musste.
So etwas kriegen nur Hacker zu Stande.
Nach dem Motto:
"Where is the next mountain?"
Was heißt "Brace Expansion ist nicht so portabel" ??Brace Expansion ginge hier zwar auch, aber z.B. nicht bei touch, weil touch dann nämlich was anderes macht (auch leere Dateien anlegen, statt nur Timestamps setzen). Und Brace Expansion ist nicht so portabel.
Mein Fehler war, das [...] als eine gängige Expansion zu sehen, mit der ich alles expandieren kann.
Wildcards und Brace Expansion sind ja zwei verschiedene Sachen.
Wobei ich es für Schwachsinn erhalte, dass man das [...] und das {...} nehmen kann und dann noch mit anderen Zeichen!
Das sind dann "fast" 2 Möglichkeiten eine Sache zu machen, was ja bei manchen Befehlen zu Fehlermeldung führt!
Bei der ganzen Sache wird man nur bekloppt.
Ja, warum einfach machen, wenn es kompliziert ist. Jetzt ist mir klar, warum Linux so lange auf seine Erweckung warten musste.
So etwas kriegen nur Hacker zu Stande.
Nach dem Motto:
"Where is the next mountain?"
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)
Re: [ Gelöst ] Wo ist die Dateinamenexpansion ???
Andere Betriebssysteme versteck(t)en Herunterfahren unter Start. Da finde ich das mit der unterschiedlichen Syntax für unterschiedliche Dinge in der Shell noch einigermaßen erträglich.Inkodiktus hat geschrieben: Ja, warum einfach machen, wenn es kompliziert ist. Jetzt ist mir klar, warum Linux so lange auf seine Erweckung warten musste.
-
- Beiträge: 134
- Registriert: 03.02.2011 11:11:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Frankfurt
Re: [ Gelöst ] Wo ist die Dateinamenexpansion ???
[...] und {..} sind für völlig verschiedene Aufgaben gedacht:
[ ] : Definition einer Zeichenmenge/Zeichenbereiches innerhalb eines Vergleichsmusters (Glob oder Regex)
{..} : einfaches Generieren von Sequenzen
Und beide können wunderbar zusammenarbeiten, z.B.
Man muss sich halt vorher genau überlegen, was man braucht und wie portabel es sein soll. (Z.B. kennt die "dash" keine Brace Expansion).
[ ] : Definition einer Zeichenmenge/Zeichenbereiches innerhalb eines Vergleichsmusters (Glob oder Regex)
{..} : einfaches Generieren von Sequenzen
Und beide können wunderbar zusammenarbeiten, z.B.
Code: Alles auswählen
mkdir dir-{01..10} && chmod 777 dir-0[1-3]
Re: [ Gelöst ] Wo ist die Dateinamenexpansion ???
Das bedeutet, dass sie nicht Teil von POSIX ist und nicht von allen Bourne-kompatiblen Shells unterstuetzt wird.Inkodiktus hat geschrieben: Was heißt "Brace Expansion ist nicht so portabel" ??
Da widersprichst du dir selbst. Du hast aber richtig erkannt: Es sind zwei ganz verschiedene Sachen.Wildcards und Brace Expansion sind ja zwei verschiedene Sachen.
[...]
Das sind dann "fast" 2 Möglichkeiten eine Sache zu machen, [...]
1) Wildcards/Globbing ist eine Pattern-Matching-Funktion, man sucht damit die Menge aller Dateinamen, auf die das Pattern zutrifft.
2) Brace-Expansion dagegen generiert Strings.
... es ist lediglich so, dass man manchmal mit beiden Funktionen zum gleichen Ziel kommt.
Nicht bei den Befehlen, sondern in der Shell. -- Das ist ein entscheidender Verstaendnisschritt.was ja bei manchen Befehlen zu Fehlermeldung führt!
... oder Personen, die sich in Ruhe einlesen und die Realitaet verstehen wollen um in ihr zurecht zu kommen. Probleme haben diejenigen, die denken die Realitaet waere so, wie sie glauben, dass sie sein sollte, und dann daran scheitern, dass sie anders ist.Bei der ganzen Sache wird man nur bekloppt.
Ja, warum einfach machen, wenn es kompliziert ist. Jetzt ist mir klar, warum Linux so lange auf seine Erweckung warten musste.
So etwas kriegen nur Hacker zu Stande.
Hier eine empfehlenswerte Lektuere fuer dich: http://www.felix-schwarz.name/files/ope ... t_Windows/
Use ed once in a while!
Re: [ Gelöst ] Wo ist die Dateinamenexpansion ???
Und ich glaube, dass wurde vom TE nicht bedacht. [] und {} werden von der Shell ausgewertet, und nicht vom jeweiligen Befehl...Meillo hat geschrieben:Nicht bei den Befehlen, sondern in der Shell. -- Das ist ein entscheidender Verstaendnisschritt.
Bis dann,
artemis