Różnica między ls-l a ll?


59

Jestem stosunkowo nowy w programowaniu jako całości, a niektóre samouczki mówią mi, żebym ls -lszukał plików w katalogu, a inni mówili ll. Wiem, że lsto krótka lista, ale czy istnieje różnica między pozostałymi dwoma?


8
Możesz rzucić okiem which ll. Prawdopodobnie odkryjesz, że lltak naprawdę jest to alias ls -l.
HalosGhost

Czym zatem różni się lskażde inne polecenie, które wprowadzam do powłoki? Jeśli piszę which ls, dostaję alias ls='ls --color=auto' /bin/ls, ale jeśli piszę (na przykład) which cd, dostaję /usr/bin/which: no cd in (........). EDYCJA: Próbowałem ponownie which mkdiri dostałem /bin/mkdir. Jaka jest różnica między tymi poleceniami, w których niektóre z nich są przechowywane (?), /usr/binA niektóre najwyraźniej nie?
Jon

jest to wpływ na domyślne ustawienie twojej dystrybucji $PATH. lsjest bardzo często aliasowany, więc twoja powłoka zgłasza alias (który ma pierwszeństwo przed plikiem binarnym) i faktyczną lokalizację pliku binarnego (w twoim przypadku /bin/ls). Jeśli whichnie można znaleźć cd, coś wydaje się okropnie nie tak.
HalosGhost,

2
cdto słowo kluczowe wbudowane w powłokę, a nie program znaleziony w systemie plików. Użyj type cdi, type lsaby zobaczyć, co mam na myśli. Niektóre polecenia są po prostu nadpisywane przez wbudowane powłoki: echoistnieją w /bin/echo, ale w bashrzeczywistości w większości nowoczesnych powłok, echozamiast tego wywoływana jest funkcja wbudowana (która zwykle ma rozszerzone funkcje). typew rzeczywistości mówi ci, który to jest.
orion

Odpowiedzi:


88

W wielu systemach llwystępuje alias ls -l:

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

Oni są tacy sami.


3
ll jest aliasowany na `ls -ltr '- używam red hat 6
rdp

3
w Ubuntu 14.04 ll jest aliasowany na 'ls -alF'
Viktor

3
Również ls -alFw Ubuntu 12.04, 16.04 i prawdopodobnie wielu innych.
Paul

3
Dla mnie na macOS Sierra ll jest aliasowany dols -lh
Zorgatone

13

Jak wspomniano, lljest często definiowany jako alias ls -l. W rzeczywistości lsczęsto jest sam alias:

$ which ls
alias ls='ls --color=auto'
/usr/bin/ls

Rzeczywiste polecenie znajduje się lspowyżej /usr/bin. lljest przeznaczony dla wygody, ale nie można polegać na tym, że jest definiowany we wszystkich systemach * nix, więc dobrze jest wiedzieć, co tak naprawdę robi.


Świetna odpowiedź. Nie mogę nic poradzić, dodając, że jest to jeden z powodów, dla których poleganie na lsautomatyzacji (szczególnie ad-hoc one-liner) jest zwykle złym pomysłem. Ma kilka opcji zmieniających dane wyjściowe i wiele sposobów ich określania. Z różnymi dystrybucjami wybierającymi różne wartości domyślne, prowadzi to do bólów głowy.
ctt

Nie widziałem żadnej popularnej dystrybucji aliasu lsna cokolwiek innego niż ls --color=auto. To albo to, albo nie ma aliasu.
phoops,

4

Ubuntu 14.04

laike9m@laike9m1:~$ type ll
ll is aliased to `ls -alF'

1
Również 12.04 i 16.04, ale to wszystko, co mogę teraz przetestować.
Paul

3

W większości przypadków llnie działa w skryptach powłoki.


1
Zdarza się, że zwykle takie polecenia llto tak naprawdę aliasy, które nie są definiowane podczas uruchamiania skryptów.
vonbrand,

3
Niektóre osoby mają alias w .profile, a alias działa w interaktywnej powłoce. Po debugowaniu / przetestowaniu nowego skryptu skrypt nagle zawiedzie w crontab. Cron nie czyta pliku .profile.
Walter,

1
To nie jest odpowiedź na pytanie, ale powinien być komentarzem. Z mojego małego zrozumienia aliasy są przestarzałe w skryptach powłoki.
płatki kukurydziane

Mówię „większość”, ale to nie robi na kopalni, a ja używaćls -l
travelingbones

1

lljest pseudonimem dla ls -l.

Ta opcja -linformuje polecenie, aby używało formatu długiej listy. Zwraca kilka kolumn, które nie są wyświetlane, gdy lsużywane jest proste polecenie. Te kolumny obejmują:

  • Uprawnienia

  • Liczba dowiązań twardych

  • Właściciel pliku

  • Grupa plików

  • Rozmiar pliku

  • Modyfikacja

  • czas

  • Nazwa pliku


0

ll jest w rzeczywistości aliasowany do `ls -l 'Jeśli uruchomisz ll, pokaże ci pliki w powłoce, a następnie naciśniesz Enter, aby zobaczyć następne pliki (więcej .. opcja). Jeśli uruchomisz ls -l, wszystkie pliki będą wyświetlane naraz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.