it-swarm.com.de

Wie mache ich einen Schrägstrich beim Anhängen der Tab-Vervollständigung für Verzeichnis-Symlinks?

Mein ~/Documents -Verzeichnis ist ein Symlink:

[email protected]:~$ stat Documents
  File: Documents -> /mnt/nathan/extended/Documents

Wenn ich cd in das Verzeichnis schreiben möchte, kann ich Folgendes eingeben:

cdspaceDoctab

... und die Tab-Vervollständigung fügt uments erwartungsgemäß an das Ende von cd Doc an. Es wird jedoch nicht ein abschließendes / angehängt, obwohl der Symlink auf ein Verzeichnis verweist.

Gibt es eine Möglichkeit, Bash dazu zu bringen?

3
Nathan Osman

Aktivieren Sie die Option mark-symlinked-directories für READLINE . Es gibt einige Möglichkeiten, dies zu tun:

  1. Passen Sie Ihre Readline an, indem Sie Befehle in eine .inputrc -Datei einfügen:

    • Erstelle oder bearbeite ~/.inputrc und füge diese Zeilen hinzu:

      $include /etc/inputrc
      set mark-symlinked-directories on
      
    • Anmelden/Abmelden oder drücken ctrl+x und ctrl+r um die Einstellungen neu zu laden.

  2. Passen Sie Ihre Readline an, indem Sie Befehle in die .bashrc -Datei (oder in die .profile -Datei) einfügen:

    • Bearbeiten Sie ~/.bashrc und fügen Sie diese Zeile hinzu:

      bind 'set mark-symlinked-directories on'
      
    • Anmelden/Abmelden oder Quelle die Datei:

      source ~/.bashrc
      
  3. Passen Sie die Readline für alle Benutzer an, indem Sie eine .sh -Datei im Verzeichnis /etc/profile.d erstellen:

    • Erstellen Sie eine Datei /etc/profile.d/mark-symlinked-directories.sh, die wie folgt aussehen sollte:

      #!/bin/sh
      bind 'set mark-symlinked-directories on'
      

      Ausführbare Berechtigungen für diese Datei sind nicht erforderlich.

    • Einloggen Ausloggen. Das ist es.

Weitere Lektüre:


Ein einfacher Weg, den ich gefunden habe, ist doppelt tab zur Fertigstellung:

cdspaceDoctabtab

Der Erste tab wird uments anhängen, der zweite wird / anhängen und der dritte wird die Liste der enthaltenen Verzeichnisse drucken.

5
pa4080