Для какой команды используется псевдоним ll?


28

Может кто-нибудь сказать мне, для какой терминальной команды используется псевдоним ll? Все, что я могу найти в Интернете, - многие люди говорят, что это псевдоним для ls -lили ls -laили ls -ltr. Но это просто неправильно. Результат выглядит иначе. Есть ли способ найти llи посмотреть на его синтаксис?

Ответы:


76

Вы можете использовать команды aliasили, typeчтобы проверить, что означает конкретный псевдоним:

$ alias ll
alias ll='ls -alF'

$ type ll
ll is aliased to `ls -alF'

Однако обратите внимание, что псевдонимы могут использовать другие псевдонимы, поэтому вам, возможно, придется проверять их рекурсивно, например, в случае ll, вы также должны проверить lsкоманду, которую она вызывает:

$ alias ls
alias ls='ls --color=auto'

$ type ls
ls is aliased to `ls --color=auto'

Так на llсамом деле означает:

ls --color=auto -alF

10
Обратите внимание, что в общем случае команда может иметь несколько одновременных определений. type -a commandnameпокажет все - он скажет вам, является ли команда одним или несколькими из псевдонима, функции, встроенного или одного или нескольких исполняемых файлов в вашем PATH, в том порядке приоритета. Это помогает понять, почему, например, отключение команды не возвращает ее к ожидаемому поведению.
Приостановлено до дальнейшего уведомления.

Я бы порекомендовал alias ll='ls -lh'. Вы можете запустить, ls -lесли вы хотите размеры в байтах вместо удобного для человека B / kiB / MiB / GiB.
Питер Кордес

13

llэто псевдоним, определенный в вашем ~/.bashrc, при условии, что вы не изменили его, это ls -alF:

$ grep ll= <~/.bashrc
alias ll='ls -alF'

Эти три варианта:

  • -a, --all - не игнорировать записи, начинающиеся с.
  • -l - использовать формат длинного списка
  • -F, --classify - добавить индикатор (один из * / => @ |) к записям

Как

$ grep ls= <~/.bashrc
alias ls='ls --color=auto'

показывает, lsсам по себе является псевдонимом для ls --color=auto:

С --color=auto, lsизлучает цветовые коды только тогда, когда стандартный вывод подключен к терминалу. LS_COLORSПеременная окружения может изменить настройки. Используйте dircolors команду, чтобы установить его.


Не обязательно .bashrc. Если вы используете другую оболочку, она будет определена в файле .rc для этой оболочки -, cshrc, .tchshc и так далее.
jamesqf

@jamesqf Я думаю, что кто-то, кто использует другую оболочку, также знает, какие псевдонимы предопределены в ней - я взял вопрос о настройке Ubuntu по умолчанию, где bashнаходится оболочка по умолчанию для пользователей, и определен псевдоним, llв /etc/skel/.bashrcкотором копируется в каждый новый домашний каталог пользователя. Конечно, вы можете использовать любой файл для хранения собственных псевдонимов - все, что вам нужно, это найти его.
десерт

2
Нет необходимости перенаправлять файл grep, в качестве аргумента будет использовано имя файла. Хотя очистка файлов запуска поможет вам определить, где псевдоним (пере) определен (обратите внимание, что он может находиться в файле в- /etcзная, что избавит вас от царапин, если вы удалите его из файла запуска пользователя, и он все еще сохраняется или даже изменяет свое поведение), если вы просто хотите быстро узнать, что такое определение, команда псевдонима , как отмечено в принятом ответе, выполнит эту работу.
Приостановлено до дальнейшего уведомления.

@DennisWilliamson Нет необходимости bashоткрывать файл, но это намного лучше! Последнее предложение в посте вопроса гласит: есть ли способ найти llи посмотреть на его синтаксис? Вот на что мой ответ отвечает.
десерт

3

Вы можете заглянуть в ваш ~ / .bashrc (или в какой-то файл, где находятся ваши псевдонимы) или вы можете написать некоторые из этих команд в вашей оболочке:

command -v ll # "command" is a shell built-in that display information about       
              # the command. Use the built-in "help command" to see the 
              # options.
type -p ll # "type" is another built-in that display information about how the 
           # command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your 
                      # alias. This command search recursively  under  each  
                      # folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in 
                      # the files (not folders) in your home folder

Но зачем использовать find без -name ". *"? Потому что вы можете поместить это в свой .bashrc

source bash_hacks # where the file bash_hacks, in your home directory can 
                  # contain the alias ll='ls -la etc etc'.

Поскольку "ll" - это псевдоним, это не обязательно имеет только одно значение (ll = 'ls -alF --color'), вы можете использовать псевдоним "ll" как другую команду, например, я не знаю, "rm" , Я думаю, что это скорее соглашение (продукт общего пользования).

Но «ll» может быть программой, хранящейся в любой папке вашего PATH. Например, если у вас дома есть папка с именем «bin», создайте скрипт «ll», который содержит что-то вроде

#!/bin/bash
ls -lhar

Но что, если ваш PATH был изменен, чтобы добавить еще одну папку, содержащую новую команду "ll"? Для более интересной информации, вы можете обратиться по следующей ссылке на связанный вопрос.


0

Нет необходимости анализировать ~ / .bashrc или любой другой скрипт. Вы можете проверить текущие значения всех aliasкоманд ввода псевдонимов в терминале. Он выведет все определенные псевдонимы с их определениями на ваш экран.


Здравствуйте и добро пожаловать в Askubuntu. Как этот ответ добавляет что-то к принятому?
Бруни

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.