Linuxでは、aliasコマンドのスクリプトはどこにありますか? [コピー]

Linuxでは、aliasコマンドのスクリプトはどこにありますか? [コピー]

実行できるように、bashエイリアススクリプトにパラメータを追加したいと思います。

alias -p l='ls -l'

私は.zshrcに永久に追加されます。しかし、シェルスクリプトのエイリアスが見つかりません。

私はそれを試しましたが、うまくwhereis aliasいきませんでした。man alias表示エイリアスにもエントリはありません。

入ってみましたが/usr/bin, /usr/share/local/bin運がありませんでした。場所を教えてくださっていますか?

編集:私はまた、あなたが可能なすべてのパスを見つけようとしました:ls $(echo $PATH| tr ':' '\n') | grep alias

ベストアンサー1

alias組み込みコマンドなので、どのファイルにもスクリプトや関数として表示されません。このtypeコマンドは以下を表示します。

$ type alias
alias is a shell builtin 

しかし、まだ上書きできます。同じ名前の関数は、組み込みbuiltin関数を使用して明示的に呼び出されない限り、組み込み関数をマスクします。

したがって、次のように動作する必要があります。

alias() {
    if [ "$1" = "-p" ]; then
        echo "-p was given";
        shift;
    fi;
    builtin alias "$@";
}

同じエイリアス割り当てをファイルに印刷するには、シェルへの入力として使用できるように正しく引用する必要があります。

shift次のことが可能ですが(関数の後に追加されます)、テストしてみてください。printf "alias %q\n" "$@" >> ~/my.alias.file

Bash対Zshの質問に関しては、上記の方法は両方に効果があると思いますが、私はZshの専門家ではありません。


ちなみに、Bashにはすでにオプションがaliasあることに注意してください。-phelp alias

  Options:
    -p        print all defined aliases in a reusable format

aliasパラメータのないデフォルトの動作は、再利用可能な形式ですべてのエイリアスを印刷することであるため、これがどの用途に使用されるのかわかりません。

おすすめ記事