Wie können Bash-Aliase so konfiguriert werden, dass sie mit Leerzeichen in Verzeichnisnamen umgehen?

Wie können Bash-Aliase so konfiguriert werden, dass sie mit Leerzeichen in Verzeichnisnamen umgehen?

Der folgende Alias ​​funktioniert gut, zshwenn Leerzeichen in Verzeichnisnamen \maskiert werden, bashverarbeitet sie aber nicht richtig. Welche Änderungen wären erforderlich, damit sie richtig mit Bash funktionieren?

dum() {
  du -h --max-depth=1 $1  
}

zsh ist erfolgreich

 user@server: dum "Server Configuration"
32K     Server Configuration
 user@server: dum Server\ Configuration
32K     Server Configuration

Bash schlägt fehl

user@server:~$ dum "Server Configuration"
8.0K    Server/install_scripts
300K    Server
du: cannot access 'Configuration': No such file or directory
user@server:~$ dum Server\ Configuration/
8.0K    Server/install_scripts
300K    Server
du: cannot access 'Configuration/': No such file or directory      

Wie muss der Alias ​​geschrieben werden, damit er in funktioniert bash?

Antwort1

(Das ist eine Funktion, kein Alias)

Zitieren Sie die Variable:

dum() {
  du -h --max-depth=1 "$1"  
}

(Das istBashFalle Nr. 2Und#4.)

verwandte Informationen