• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Platzhalter in der Konsole bei Namen mit Leerzeichen

Hi,

eine Frage kurz vor Jahresende, die ich mir schon öfters gestellt habe. Wenn ich versuche im Terminal (xfce4-terminal) statt den ganzen Datei- oder Ordnernamen einen Platzhalter (*) anzugeben geht das bei Namen mit Leerzeichen nur manchmal. Es kommt dann die Meldung von wegen "zu viele Argumente". Manchmal ließ sich das mit Zweideutigkeit begründen, z. B. wenn ich "neu*" eingeben und es gibt einen Ordner "neu 1" und "neu 2". Das trifft aber nicht auf alle Fälle zu. Es geht auch nicht wenn ich das ganze mit Quotes versehe.

Gibt es hier eine gewisse Logik die ich nicht verstehe?
 

HPF-84E

Member
Hi,

also ich habe bei mir zwei neue Ordner unter Home erstellt: „Ordner 1" und „Ordner 2".
Diese möchte ich jetzt suchen. Also wie in deinem Beispiel.
Mit find:
Code:
find ~/ -name "Ordner*"
/home/hpf/Ordner 1
/home/hpf/Ordner 2

Bedeutet: Finde in Home den Namen Ordner*

Mit apropos (allerdings ohne Pfadangabe) im Ordner in dem man sich befindet:
Code:
apropos -l Ordner*
Ordner 1: nichts passendes.
Ordner 2: nichts passendes.

Mit locate:
Code:
locate Ordner*
/home/hpf/Ordner 1
/home/hpf/Ordner 2
Um locate nutzen zu können muss mlocate installiert werden.
Mit Rootrechten:
Code:
zypper in mlocate
Code:
updatedb

Wie du siehst wird eigentlich alles gefunden. Mit locate kann die Liste schon ziemlich lang werden je nach dem wie oft der Begriff vorkommt und wo man sucht. Mit find kann man alles schön genau definieren.


HPF-84E
 
OP
B

bunter fisch

Member
Ich meinte Ordner wechseln mit 'cd'.

Ich hab grad kein Beispiel, ich werde aber eines posten wenn das Problem wieder mal auftritt. Vielleicht war das auch nur auf meinem Raspberry Pi mit Debian statt Ubuntu (vielleicht gibt es da unterschiedliche Settings).
 

josef-wien

Ultimate Guru
Bei cd muß der Verzeichnisname eindeutig sein. Den Stern löst die bash auf und vervollständigt den Befehl, bevor dieser ausgeführt wird. Ein cd mit mehr als einem Verzeichnisnamen führt zwangläufig zu einer Fehlermeldung. Wenn Du Anführungszeichen verwendest, gibt es keine Platzhalter, dann ist der Stern ein einstelliger Namensteil.
 
Für mich klingt die Frage danach als wäre dir die Tab-Vervollständigung der bash nicht geläufig. Beispiel: Du willst mit cd ein Verzeichnis namens Ordner wechseln. Statt deinem geistigen Konstrukt "cd O*" gib einfach "cd O<TAB>" ein. Der Name wird vervollständigt und Du brauchst nur noch <ENTER> drücken. Wenn es weitere Verzeichnisse gibt die mit O anfangen mußt Du soviele Zeichen eingeben bis es eindeutig wird. Wenn Du ein zweites Mal <TAB> drückst, werden dir die möglichen Verzeichnissnamen angezeigt. Je nach weiteren Verzeichnissen wird dir aber auch nur ein Teil des Namens erweitert, nämlich wenn die Namen gleich anfangen bis zur Unterscheidung.
 
Oben