web-dev-qa-db-ja.com

デスクトップディレクトリのエイリアスを作成する

cd Desktopと入力すると、ターミナルが現在開いているフォルダーに関係なく、/home/bob-ubuntu/Desktopに移動します。

.bashrcファイルの下部に、次の行があります。

alias desktop='/home/bob-ubuntu/Desktop'

alias Desktop='/home/bob-ubuntu/Desktop'

次にソースを作成しますが、cd Desktopまたはcd desktopと入力しても、同じエラーが発生しますか?

1
K Split X
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 [〜#〜] ユーザーディレクトリが設定されている場合は、$XDG_DESKTOP_DIRを使用できます。
  • CDPATHコマンドのcd環境変数に/home/bob-ubuntuを追加できます

しかし、あなたはただ使うほうが本当に良いです:

cd ~/Desktop

ティルダは傷つくべきではありません! :D

次のように、tildaを使用して、システム内の多くのユーザーの$HOMEディレクトリに切り替えることもできます。

cd ~root
ls ~ftp
echo ~nobody
1
user86041

Icarusがコメントで示唆しているように、1つの簡単な方法は、cd ~/Desktopを実行するエイリアスを作成することです。

ただし、本当にcdをこのように動作させたい場合は、ディレクトリがcdであるかどうかのチェックを処理する関数をDesktopにエイリアスすることができます。

_cd () {
  if [ "$1" == "Desktop" ]; then
    cd ~/Desktop
  else
    cd $1
  fi
}
alias cd="_cd"

ただし、これにより、cdのタブ補完も中断されます

0
ethanwu10