Da sich die Befehlsersetzung in Anführungszeichen befindet, wird sie zum Zeitpunkt der Definition des Befehls ausgewertet. Dies führt find
dazu, dass Sie den Inhalt Ihrer Festplatte während der .bashrc
Ausführung durchsehen.
Im Gegensatz dazu scheint es, dass es zum Zeitpunkt der Verwendung ausgewertet wird. Verwenden Sie in diesem Fall einfache Anführungszeichen:
alias prog='/path/to/script.sh $(find "$(pwd)" -name prog)'
Beachten Sie, dass dieser Alias fehlschlägt, wenn eine der gefundenen Dateien Leerzeichen in ihren Namen enthält. Um das zu vermeiden:
alias prog='find . -name prog -exec /path/to/script.sh {} +'
Dieses letztere Formular funktioniert zuverlässig für alle Arten von Dateinamen.