ls
ls ispisuje sadržaj direktorijuma. To je verovatno komanda
koju ćeš kucati najčešće od svih — i zato vredi znati više od golog
ls.
ls [opcije] [putanja]
Bez putanje radi nad tekućim direktorijumom, koji proveravaš sa pwd.
$ ls beleske.txt dokumenti skripta.sh slike
Kako se čita ls -l
Ovo je najvažniji deo cele stranice.
$ ls -l -rw-r--r-- 1 alen alen 284 Aug 22 10:15 beleske.txt drwxr-xr-x 3 alen alen 4096 Aug 20 18:02 dokumenti -rwxr-xr-x 1 alen alen 1024 Aug 21 09:30 skripta.sh lrwxrwxrwx 1 alen alen 12 Aug 22 11:40 tekuci -> dokumenti
Red po red, kolona po kolona:
- Prvi znak je tip:
-običan fajl,ddirektorijum,lsimbolički link. - Devet znakova posle su dozvole, u tri grupe po tri — vlasnik, grupa, ostali. Kako se to čita, objašnjeno je na stranici Pregled prava pristupa.
- Broj je broj hard linkova. Kod direktorijuma nije broj fajlova
unutra, nego 2 + broj poddirektorijuma — otud 3 za
dokumenti. Objašnjenje je u lekciji Inode-ovi i linkovi. - Dva imena su vlasnik i grupa.
- Broj je veličina u bajtovima. Kod direktorijuma to je veličina same tabele imena, a ne sadržaja — zato svi direktorijumi obično pokazuju 4096.
- Datum je vreme poslednje izmene sadržaja.
- Ime, a kod linka i strelica ka meti.
Veličine su čitljivije uz -h:
$ ls -lh -rw-r--r-- 1 alen alen 1,4G Aug 22 10:15 backup.tar.gz -rw-r--r-- 1 alen alen 284 Aug 22 10:15 beleske.txt
Kombinacije koje ćeš zaista koristiti
U praksi se opcije ne kucaju pojedinačno, nego u ustaljenim kombinacijama.
ls -la — i skriveni fajlovi
$ ls -la drwxr-xr-x 5 alen alen 4096 Aug 22 11:40 . drwxr-xr-x 24 root root 4096 Aug 10 08:00 .. -rw-r--r-- 1 alen alen 3771 Aug 15 12:00 .bashrc -rw------- 1 alen alen 807 Aug 15 12:00 .profile -rw-r--r-- 1 alen alen 284 Aug 22 10:15 beleske.txt
Imena koja počinju tačkom ls podrazumevano preskače. Nema u
tome ničeg tajnog — to je dogovor, ne zaštita. Tu žive podešavanja, pa je
ls -la prva komanda kad tražiš konfiguraciju u kućnom
direktorijumu.
Unosi . i .. nisu smeće nego stvarni zapisi na
disku, kao što piše u lekciji
Apsolutne i relativne
putanje. Ako ti smetaju, -A radi isto što i -a,
samo bez njih.
ls -lt — najnovije prvo
$ ls -lt /var/log -rw-r----- 1 syslog adm 184320 Aug 22 12:31 syslog -rw-r----- 1 syslog adm 12043 Aug 22 12:28 auth.log -rw-r--r-- 1 root root 32768 Aug 21 06:25 dpkg.log
Ovo je refleks pri traženju kvara: koji fajl je poslednji menjan. Sa
-r se redosled obrne, pa ls -ltr stavlja najnovije
na dno — udobno kad je spisak duži od ekrana, jer ono što te zanima ostane
pred očima.
ls -lS — najveće prvo
$ ls -lSh -rw-r--r-- 1 alen alen 1,4G Aug 22 10:15 backup.tar.gz -rw-r--r-- 1 alen alen 22M Aug 20 14:02 video.mp4
Traži samo u jednom direktorijumu. Za rekurzivno traženje potrošača prostora bolji je du.
ls -ld — o samom direktorijumu
$ ls -l /etc/ssh total 580 -rw-r--r-- 1 root root 1650 Aug 15 09:00 ssh_config -rw------- 1 root root 2610 Aug 15 09:00 sshd_config $ ls -ld /etc/ssh drwxr-xr-x 4 root root 4096 Aug 15 09:00 /etc/ssh
Bez -d dobijaš sadržaj, sa -d podatke o samom
direktorijumu. Neizbežno kad proveravaš dozvole nad direktorijumom, na primer
zašto web server ne može da uđe u /var/www.
ls -i — broj inode-a
$ ls -li 1310721 -rw-r--r-- 2 alen alen 284 Aug 22 10:15 original.txt 1310721 -rw-r--r-- 2 alen alen 284 Aug 22 10:15 kopija.txt
Isti broj znači da su to dva imena za isti fajl.
Sitnice koje zbunjuju
Redosled nije onaj koji očekuješ
$ ls slika1.png slika10.png slika2.png
Nije greška — sortira se po znakovima, a znak „1" dolazi pre znaka „2", pa
slika10 pretiče slika2. Za ljudski redosled postoji
-v:
$ ls -v slika1.png slika2.png slika10.png
Ista logika objašnjava zašto ls slika?.png ne hvata
slika10.png — o tome u lekciji
Džokeri i navodnici.
Rekurzivno listanje ume da poplavi ekran
$ ls -R /etc | less
Bez pejdžera ispis proleti kroz terminal. Detaljnije o listanju kroz
less. A ako
tražiš konkretan fajl, find je pravi alat, ne
ls -R.
Ispis se menja kad ide kroz cev
$ ls beleske.txt dokumenti skripta.sh $ ls | cat beleske.txt dokumenti skripta.sh
ls proverava da li piše na terminal. Ako da — ređa u kolone i
boji. Ako ne — jedno ime po redu, bez boja. Zato ispis izgleda drugačije čim
ga preusmeriš, o čemu ima više na stranici
Piping i redirekcija. Ako
želiš jedno ime po redu i na ekranu, koristi ls -1 (jedinica, ne
malo L).
Ime sa razmakom ili novim redom
Zato se izlaz ls nikada ne obrađuje u skriptama. Ovo puca čim
neko ime sadrži razmak:
for f in $(ls); do ...
Ispravno je koristiti džoker ili find:
for f in *; do ... find . -maxdepth 1 -type f -print0 | xargs -0 ...
Da vidiš problematične znakove u imenima, tu je ls -b.
Boja govori šta je šta
Plavo su direktorijumi, zeleno izvršni fajlovi, cijan simbolički linkovi,
a crveno na crnoj podlozi obično slomljen link. Ako boja nema, dodaj
--color=auto — ili koristi -F, koje isto značenje
prenosi znakovima:
$ ls -F beleske.txt dokumenti/ skripta.sh* tekuci@
Kosa crta je direktorijum, zvezdica izvršni fajl, majmunče simbolički link.
Korisni aliasi
Većina distribucija već ima ll, ali proveri i dodaj u
~/.bashrc ono što ti nedostaje:
alias ll='ls -alhF' alias lt='ls -ltrh'
Kako aliasi rade i zašto ne postoje na tuđem serveru, piše na stranici alias.
Kratka referenca
-l— detaljan prikaz-h— čitljive veličine (ide uz-l)-a— i skriveni fajlovi ·-A— bez.i..-t— po vremenu izmene ·-S— po veličini ·-v— ljudski redosled brojeva-r— obrnuto sortiranje-d— o samom direktorijumu, ne o sadržaju-i— broj inode-a-R— rekurzivno-1— jedno ime po redu-F— oznake tipa uz ime
Ceo spisak opcija je u man stranici:
man ls.
Vežba
$ cd /var/log
- Izlistaj fajlove sortirane tako da je poslednji izmenjen na dnu ekrana.
- Pronađi tri najveća fajla, sa čitljivim veličinama.
- Proveri dozvole nad samim direktorijumom
/var/log, ne nad njegovim sadržajem. - U svom kućnom direktorijumu izlistaj samo skrivene fajlove, bez
.i...
Za četvrti zadatak treba ti kombinacija ls i džokera — a
šablon nije očigledan.
Kretanje kroz direktorijume je na stranici cd, a šta je koji sistemski direktorijum na stranici Direktorijumi i fajlovi Linux sistema.
Cela lekcija je deo vodiča Linux osnove.
Comments
Post a Comment