Очевидно, необходимо измениться в каталог, который является Рабочим столом прежде. Если Ваш рабочий стол ~/Desktop
затем команда, в которой Вы нуждаетесь:
cd ~/Desktop
# the following command shows you the files (and more) in this directory
ls
В случае, если у Вас есть проблемы при нахождении настольного каталога: файловый менеджер KDE (дельфин) имеет функцию, что это может открыть оболочку в текущем каталоге. Возможно, Ваш файловый менеджер (который должен легко найти Ваш рабочий стол) может к этому, также.
Правильный способ - использовать следующее в вашем ~ / .bashrc
, как @Gilles предложил выше (здесь более короткая версия):
_my_cd () { CDPATH= _cd "$@";}
Лучше всего проверить CDPATH
тогда и только тогда, когда нет совпадения обнаруживаются локально:
_my_cd () { CDPATH= _cd "$@"; if [ -z "$COMPREPLY" ]; then _cd "$@"; fi;}
Таким образом, вы получаете функциональность программируемого завершения, не доставляя неудобств. Не забывайте
complete -F _my_cd cd
По какой-то причине / usr / share / bash-Completion / bash_completion
имеет -o nospace
для cd
(хотя nospace
кажется по умолчанию), так что вы также можете иметь:
complete -F _my_cd -o nospace cd
Виноват ваш bash_completion, а не ваша версия bash вообще.
С головная версия из bash_completion repo, cd
автозавершение включает каталоги под CDPATH
.
Вы можете внести изменения непосредственно в местное bash_completion
, но лучше написать свое собственное cd
автозавершение.
Если вы хотите получить глобальный эффект, создайте файл с именем /etc/bash_completion.d/cd
со следующим содержимым:
_cd()
{
local cur=${COMP_WORDS[COMP_CWORD]}
_init_completion || return
local IFS=$'\n' i
compopt -o filenames
local -r mark_dirs=$(_rl_enabled mark-directories && echo y)
local -r mark_symdirs=$(_rl_enabled mark-symlinked-directories && echo y)
_filedir -d
if [[ ${#COMPREPLY[@]} -eq 1 ]]; then
i=${COMPREPLY[0]}
if [[ "$i" == "$cur" && $i != "*/" ]]; then
COMPREPLY[0]="${i}/"
fi
fi
return 0
}
if shopt -q cdable_vars; then
complete -v -F _cd -o nospace cd
else
complete -F _cd -o nospace cd
fi
Эта версия получила все от оригинала, исключая часть CDPATH
.
Если вы хотите использовать только для ваших настроек, вы можете отредактировать .bashrc
следующим образом:
_my_cd () {
declare CDPATH=
_cd "$@"
}
complete -F _my_cd cd
Есть некоторые случаи, когда завершение bash не работало с CDPATH
в вашей Mac OSX, ваше bash_completion
слишком старое, или вы его еще не загрузили.
С помощью переменной BASH_COMPLETION_COMPAT_DIR
можно установить место, куда bash_completion
загружает пользовательскую функцию завершения, по умолчанию /etc/bash_completion.d
.