cd Desktop
と入力すると、ターミナルが現在開いているフォルダーに関係なく、/home/bob-ubuntu/Desktop
に移動します。
.bashrc
ファイルの下部に、次の行があります。
alias desktop='/home/bob-ubuntu/Desktop'
alias Desktop='/home/bob-ubuntu/Desktop'
次にソースを作成しますが、cd Desktop
またはcd desktop
と入力しても、同じエラーが発生しますか?
alias desktop='/home/bob-ubuntu/Desktop' cd desktop
エイリアスはコマンド名用です。 cd
コマンドのパラメーターはコマンド名ではありません。このコンテキストでは、エイリアスは使用されません。
desktop
だけを入力すると、エイリアスが呼び出されます。ただし、デフォルトではエラーが発生します
bash: /home/bob-ubuntu/Desktop: Is a directory
shopt -s autocd
行を~/.bashrc
に追加して、コマンド位置にディレクトリ名を入力すると、そのディレクトリに対してcd
が実行されるようにします。このようにして、(~/Desktop
の代わりに)~/Desktop
を入力するか、エイリアスを使用してdesktop
と入力することにより、ディレクトリcd ~/Desktop
に変更できます。
または、機能するコマンドのエイリアスを定義します。
alias desktop='cd /home/bob-ubuntu/Desktop'
多くの方法があります:
$desktop
および/または$D
の変数を作成できます。alias desktop='cd /home/bob-ubuntu/Desktop'
できます$USER/Desktop
を使用できます$XDG_DESKTOP_DIR
を使用できます。CDPATH
コマンドのcd
環境変数に/home/bob-ubuntu
を追加できますしかし、あなたはただ使うほうが本当に良いです:
cd ~/Desktop
ティルダは傷つくべきではありません! :D
次のように、tildaを使用して、システム内の多くのユーザーの$HOME
ディレクトリに切り替えることもできます。
cd ~root
ls ~ftp
echo ~nobody
Icarusがコメントで示唆しているように、1つの簡単な方法は、cd ~/Desktop
を実行するエイリアスを作成することです。
ただし、本当にcd
をこのように動作させたい場合は、ディレクトリがcd
であるかどうかのチェックを処理する関数をDesktop
にエイリアスすることができます。
_cd () {
if [ "$1" == "Desktop" ]; then
cd ~/Desktop
else
cd $1
fi
}
alias cd="_cd"
ただし、これにより、cd
のタブ補完も中断されます