Jestem stosunkowo nowy w programowaniu jako całości, a niektóre samouczki mówią mi, żebym ls -l
szukał plików w katalogu, a inni mówili ll
. Wiem, że ls
to krótka lista, ale czy istnieje różnica między pozostałymi dwoma?
shell
shell-script
ls
Jon
źródło
źródło
which ll
. Prawdopodobnie odkryjesz, żell
tak naprawdę jest to aliasls -l
.ls
każ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 ponowniewhich mkdir
i dostałem/bin/mkdir
. Jaka jest różnica między tymi poleceniami, w których niektóre z nich są przechowywane (?),/usr/bin
A niektóre najwyraźniej nie?$PATH
.ls
jest 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śliwhich
nie można znaleźćcd
, coś wydaje się okropnie nie tak.cd
to słowo kluczowe wbudowane w powłokę, a nie program znaleziony w systemie plików. Użyjtype cd
i,type ls
aby zobaczyć, co mam na myśli. Niektóre polecenia są po prostu nadpisywane przez wbudowane powłoki:echo
istnieją w/bin/echo
, ale wbash
rzeczywistości w większości nowoczesnych powłok,echo
zamiast tego wywoływana jest funkcja wbudowana (która zwykle ma rozszerzone funkcje).type
w rzeczywistości mówi ci, który to jest.Odpowiedzi:
W wielu systemach
ll
występuje aliasls -l
:Oni są tacy sami.
źródło
ls -alF
w Ubuntu 12.04, 16.04 i prawdopodobnie wielu innych.ls -lh
Jak wspomniano,
ll
jest często definiowany jako aliasls -l
. W rzeczywistościls
często jest sam alias:Rzeczywiste polecenie znajduje się
ls
powyżej/usr/bin
.ll
jest 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.źródło
ls
automatyzacji (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.ls
na cokolwiek innego niżls --color=auto
. To albo to, albo nie ma aliasu.Ubuntu 14.04
źródło
W większości przypadków
ll
nie działa w skryptach powłoki.źródło
ll
to tak naprawdę aliasy, które nie są definiowane podczas uruchamiania skryptów.ls -l
ll
jest pseudonimem dlals -l
.Ta opcja
-l
informuje polecenie, aby używało formatu długiej listy. Zwraca kilka kolumn, które nie są wyświetlane, gdyls
uż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
źródło
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.
źródło