псевдоним bash для «cd directory»; LS»

2

Как создать псевдоним BASH для:

Я печатаю в cdd directory и что это делает cd directory а потом ls?

funk-shun
источник
1
Примечание (хотя другие упоминали) псевдонимы не могут иметь аргументы. Вам нужна функция.
Rich Homolka
1
Почему ты не используешь ls directory вместо?
user unknown

Ответы:

7

Было бы проще сделать функцию:

cdd () 
{
    cd $1
    ls
}

Конечно, вы можете назвать функцию как угодно. Поместите его в ваш .bashrc или .profile или что-то еще в вашей системе.

Rafe Kettler
источник
это автоматически mkae cdls псевдоним?
funk-shun
3
@ фанк-шун это делает cdd функция, которая на практике действует почти так же, как псевдоним. Хотя функции более мощные и принимают аргументы.
Rafe Kettler
так что я понимаю, что $ 2 относится ко второму аргументу в вызове команды? -r в случае ls -C -r?
funk-shun
@ фанк-шун да.
Rafe Kettler
2

Вы хотите использовать функцию, которую вы положите в свой .bashrc (или же .bash_profileили что угодно)

cdd(){
  to=$1
  cd ${to}
  ls
}

Как только вы поместите это в соответствующий файл, вы можете использовать cdd <directory> как псевдоним.

CanSpice
источник
1
Это сломает каталоги с пробелами в них
Daenyth
2

Как и другие примеры функций, но этот будет работать с каталогами с пробелами, без необходимости экранировать пробелы.

cdd() {
    cd "$*"
    ls
}
Wuffers
источник
1
alias dirXandLs='cd directory; ls'

Могу поспорить, что вы действительно хотите сделать каталог аргументом, то есть $ 1. не может сделать это с псевдонимами.

Надеюсь, это поможет.

shellter
источник
1

Я думаю Вот это твой ответ. Вы можете добавить эту функцию в ваш файл .bashrc:

function cd(){ builtin cd "$*" && ls }
rzjfr
источник