Unterverzeichnis eingeben, wenn aktuelles Verzeichnis leer ist

Unterverzeichnis eingeben, wenn aktuelles Verzeichnis leer ist

Es gibt eine Sache, die mich davon abhält, meinen GUI-Dateimanager für Bash zu verwerfen: Bash führt keine Tab-Vervollständigung bis zum einzigen Unterverzeichnis in einem leeren Verzeichnis durch.

$ ls
..       // is not displayed, when cmd is simply ls
.        // but they still exist
subdir/

cd <tab> Ich möchte in der Lage sein, zu erweitern, cd subdir/da sich im aktuellen Verzeichnis nichts anderes befindet, aber Bash erfordert die Eingabe des ersten Buchstabens, um diesen Befehl abzuschließen.

Anwendungsfall Das Navigieren in Projekten mit verschachtelten Verzeichnissen (insbesondere unbekannten) ist mühsam. /src/main/com/application/module/package bedeutet: s<tab><tab><tab>m<tab><tab><tab>c<tab><tab><tab>a<tab>...während beispielsweise in Thunar das erste Verzeichnis bereits ausgewählt ist, sodass ich einfach mehrmals die Eingabetaste drücken kann.

Ich vermute, das liegt an der Kennung des aktuellen und des übergeordneten Verzeichnisses. Was wäre die richtige Art, dieses Verhalten in Bash zu archivieren?

//Bearbeiten_2:

Ich verwende xfce4-terminal unter Debian 10

Antwort1

Vielen Dank an alle für die schnellen Kommentare zu meinem Problem. Das Deaktivieren der Shell-Skripte für programmierbare Shell-Skripte hat mein Problem gelöst.

Es trat aufgrund eines von Debian vorinstallierten Pakets auf. Schritte zur Behebung dieses Verhaltens waren:

  1. Beseitigen Sie die Vorkommen der folgenden Codeliste in meinen .bashrc-Dateien, nämlich $HOME/.bashrc, $HOME/.profile, /etc/bash.bashrc und /etc/profile.
  2. Entfernen Sie das Paket über apt remove bash-completion, wodurch die folgenden Dateien entfernt werdenDebian-Pakete - Dateien auflisten
  3. Quellcode der bearbeiteten .bashrc / Bash neu starten.
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then  
  if [ -f /usr/share/bash-completion/bash_completion ]; then  
    . /usr/share/bash-completion/bash_completion  
  elif [ -f /etc/bash_completion ]; then  
    . /etc/bash_completion  
  fi  
fi  

Vielen Dank, Jungs!

verwandte Informationen