Differenza tra ls -l e ll?


59

Sono relativamente nuovo alla programmazione nel suo insieme e alcuni tutorial mi hanno detto di usare ls -lper guardare i file in una directory e altri hanno detto ll. So che lsè un breve elenco, ma c'è una differenza tra gli altri due?


8
Potresti dare un'occhiata which ll. Probabilmente scoprirai che in llrealtà è un alias per ls -l.
HalosGhost,

Allora, qual è la differenza tra lsqualsiasi altro comando che ho inserito nella shell? Se digito which lsottengo alias ls='ls --color=auto' /bin/ls, ma se digito (ad esempio) which cdottengo /usr/bin/which: no cd in (........). EDIT: ho provato di nuovo con which mkdire ho ottenuto /bin/mkdir. Qual è la distinzione tra questi comandi in cui alcuni di essi sono memorizzati (?) /usr/binE altri apparentemente no?
Jon,

questo è un effetto del default della tua distribuzione $PATH. lsè molto spesso aliasato, quindi la tua shell riporta l'alias (che ha la precedenza sul binario) e la posizione effettiva del binario (nel tuo caso /bin/ls). Se whichnon riuscissi a trovare cd, allora qualcosa sembra terribilmente sbagliato.
HalosGhost,

2
cdè una parola chiave integrata nella shell, non un programma trovato in un filesystem. Usa type cde type lsper vedere cosa intendo. Alcuni comandi sono semplicemente sostituiti dai builtin della shell: echoesiste in /bin/echo, ma in bashrealtà nella maggior parte delle shell moderne, al suo echoposto viene chiamata una funzione incorporata (che di solito ha funzionalità estese). typein realtà ti dice quale è.
Orione,

Risposte:


88

Su molti sistemi, llè un alias di ls -l:

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

Loro sono la stessa cosa.


3
ll è alias di `ls -ltr '- Sto usando Red Hat 6
RDP

3
in Ubuntu 14.04 ll è alias di 'ls -alF'
Viktor

3
Anche ls -alFin Ubuntu 12.04, 16.04 e probabilmente molti altri.
Paolo,

3
Per me su macOS Sierra ll è aliasls -lh
Zorgatone,

13

Come notato, llè spesso definito come un alias di ls -l. In realtà, lsè spesso un alias stesso:

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

Il comando effettivo è quello lssopra riportato /usr/bin. llè inteso come una comodità, ma non puoi fare affidamento sul fatto che è definito su tutti i sistemi * nix, quindi è bene sapere cosa sta realmente facendo.


Bella risposta. Non posso fare a meno di aggiungere che questo è uno dei motivi per cui fare affidamento sull'automazione ls(in particolare una linea ad hoc) di solito è una cattiva idea. Ha diverse opzioni che cambiano il suo output e molti modi per specificarli. Con diverse distribuzioni che scelgono impostazioni predefinite diverse, tende a causare mal di testa.
ctt

Non ho visto alcuna distribuzione popolare all'alias lsper nient'altro che ls --color=auto. O quello o non c'è alias.
phoops,

4

Ubuntu 14.04

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

1
Anche 12.04 e 16.04, ma questo è tutto quello che ho a disposizione per testare adesso.
Paul,

3

Nella maggior parte dei casi, llnon funziona negli script di shell.


1
Quello che succede è che in genere comandi come llsono realmente alias, che non sono definiti quando si eseguono script.
vonbrand,

3
Alcune persone hanno l'alias nel .profile e l'alias sta lavorando in una shell interattiva. Dopo il debug / test di un nuovo script, lo script improvvisamente fallisce in crontab. Cron non legge il .profile.
Walter, un

1
Questa non è una risposta alla domanda, ma dovrebbe essere invece un commento. Dalla mia scarsa comprensione, gli alias sono deprecati negli script di shell.
cornflakes24,

Dico "più", ma non lo fa sulla mia, e io usols -l
travelingbones

1

llè un alias per ls -l.

L'opzione -lindica al comando di utilizzare un formato elenco lungo. Restituisce diverse colonne, non visualizzate quando lssi utilizza il comando semplice . Queste colonne includono:

  • permessi

  • Numero di collegamenti

  • Proprietario del file

  • Gruppo di file

  • Dimensione del file

  • Modifica

  • tempo

  • Nome del file


0

ll è in realtà alias di `ls -l 'Se esegui ll, allora ti mostrerà i file nella shell, quindi premi Invio per vedere i file successivi (opzione more ..). Se esegui ls -l, tutti i file verranno visualizzati contemporaneamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.