Komendy Linux: Wyświetlanie zawartości folderu
Wyświetlanie zawartości katalogu
Wyświetlanie katalogów, zwane inaczej listowaniem ich zawartości, można wykonać w systemie Linux za pomocą kilku poleceń. System udostępnia bardzo rozbudowane polecenie służące do wykonywania tego typu zadań - jest nim ls.
Polecenie to może przypominać jedno z poleceń systemu operacyjnego MS-DOS - wszyscy użytkownicy, którzy znają to środowisko, zapewne poczuli się jak w domu. Jednak wynik działania tego polecenia w Linuksie różni się od tego z systemu DOS. W Linuksie wyświetlana po wykonaniu tego polecenia lista plików i katalogów jest prezentowana w postaci linii, a nie w kolumnie. Trzeba przyznać, że taki zapis utrudnia nieco odczytanie drzewa katalogów i orientację w nim, szczególnie w przypadku gdy użytkownik przyzwyczajony jest do prezentowania go w postaci znanej z MS-DOS. Oto przykład wykonania polecenia dir w systemie Linux:
user@linux:~$ dir
Wykonanie polecenia vdir powoduje wyświetlenie szczegółowych informacji o zawartości bieżącego katalogu; oprócz nazw plików i katalogów podawane są informacje o typie elementu, prawach dostępu do niego, jego właścicielu oraz kilka innych.
user@linux:~$ vdir
Program ten jest bardzo rozbudowany i posiada wiele parametrów, które pokrótce omówię. Wykonanie samego polecenia ls (bez dodatkowych parametrów) da efekt identyczny z tym, jaki powodowało wykonanie polecenia dir. Aby uzyskać więcej informacji na temat zawartości katalogu, powinniśmy zastosować polecenie ls wraz z parametrem - l. Wykonanie tego polecenia w takiej postaci daje wynik identyczny z wynikiem działania polecenia vdir. Jako parametr można podać ścieżkę dostępu do katalogu, którego zawartość chcemy wyświetlić. Jeżeli jej nie podamy, zawsze wyświetlona zostanie zawartość katalogu bieżącego - tego, w którym się obecnie znajdujemy. Najbardziej przydatnym parametrem polecenia ls jest -l; dzięki jego wykonaniu otrzymamy kompletny zestaw informacji na temat zawartości katalogu i typów zawartych w nim elementów. Wyświetlone w poniższym przykładzie informacje, zdobyte wskutek wykonania polecenia z parametrem -1, zinterpretujemy na podstawie pierwszej linii wyniku:
drwxr-xr-x 2 root root 4096 lis 28 17:47 bin
- kolumna 1.: typ elementu i prawa dostępu do niego (drwxr-.-xr-x),
- kolumna 2.: liczba powiązań do tego elementu (2),
- kolumna 3.: właściciel pliku (root),
- kolumna 4.: grupa, która została przypisana do tego pliku (root),
- kolumna 5.: rozmiar elementu (4096),
- kolumna 6.: data modyfikacji (lis 28 17:47),
- kolumna 7.: nazwa elementu (bin).
Zapis drwxr-xr-x z kolumny pierwszej składa się z czterech zasadniczych elementów. Pierwsza litera zawsze określa typ elementu. Oto symbole oznaczające typy elementów:
- - - zwykły plik,
- b - specjalny plik blokowy,
- c - specjalny plik znakowy,
- d - katalog,
- 1 - dowiązanie symboliczne,
- p - nazwany potok,
- s - gniazdo.
A zatem, jak można wnioskować na podstawie zapisu d rwxr+xr-x, rozpatrywany obiekt jest katalogiem.
- Parametry polecenia (ls):
- -a Zastosowanie polecenia ls wykonanego z parametrem -a doprowadzi do wyświetlenia wszystkich plików i katalogów w danej lokalizacji. Pokazane zostaną także pliki ukryte, które w przypadku wywołania ls bez tego parametru nie są widoczne.
user@linux:~$ ls -a
. .. katalog plik1 plik2 plik_kopii- .ukryty_plik
- -A Zastosowanie tego parametru pozwoli zobaczyć wszystkie elementy w podanej lokalizacji, wraz z plikami ukrytymi, jednak w tym przypadku w wyniku nie będą widoczne symbole „ . " i „ . . ", które oznaczają katalog bieżący i nadrzędny:
user@linux:~$ ls -A
katalog plik1 plik2 plik_kopii- .ukryty_plik
- -B Użycie parametru - B spowoduje ukrycie plików kopii zapasowych, które znajdują się w danym katalogu. Pliki te można rozpoznać po znaku tyldy (-) występującym na końcu nazwy.
user@linux:~$ ls -B
katalog plik1 plik2
- -d Jeżeli w danym katalogu zawarte są pliki i katalogi podrzędne, zastosowanie polecenia ls wykonanego bez parametru -d spowoduje wyświetlenie ich wszystkich. Jeżeli jednak zastosujemy parametr -d, zostaną wypisane tylko elementy rozpoznane jako katalogi:
user@linux:~$ ls -d
katalog
- -I [wzorzec] , --ignore=[wzorzec]
Dzięki temu parametrowi możemy nie pokazywać plików, których nazwy zawierają zdefiniowany przez nas wzorzec. Podobnie jak w systemie MS-DOS, także i tu możemy używać znaków ogólnych, takich jak gwiazdka (*), która zastępuje dowolny ciąg znaków (również pusty), oraz znak zapytania (?), który zastępuje dowolny pojedynczy znak.W zaprezentowanym tu przykładzie wyświetlona została zawartość katalogu, z wyłączeniem tych elementów, których nazwy zaczynają się na literę „p", na przykład:
user@linux:~$ ls --ignore='p*'
katalog
Po podaniu wzorca nazwy elementu można wyświetlić tylko te elementy znajdujące się w danym katalogu, które pasują do tego wzorca. Wzorce tworzy się w taki sam sposób jak w systemie MS-DOS. W tym przypadku chcemy, aby wyświetlane były elementy, których nazwa rozpoczyna się od litery „p":
user@linux:~$ ls p*
plik1 plik2 plik_kopii
Taki zapis pozwala na wyświetlenie wszystkich elementów, których nazwa zaczyna się od litery „p" i składa się z pięciu znaków:
user@linux:~$ ls p?????
plik1 plik2
- -R , --recursive
Zastosowanie tych parametrów powoduje rekurencyjne wyświetlenie zawartości katalogu i jego podkatalogów. W bieżącym katalogu z naszego przykładu mamy także podkatalog o nazwie katalog. Jak widać, po wydaniu polecenia ls z parametrem -R wyświetlona została także jego zawartość:
user@linux:~$ ls -R
katalog plik1 plik2 plik_kopii
- ./katalog:
plik1_w_katalogu
- -r , --reverse
Użycie tych parametrów powoduje odwrócenie kolejności wyświetlania zawartości katalogu. Opcja ta przydaje się najbardziej w przypadku sortowania, podczas którego możemy odwrócić domyślną kolejność wypisywanych elementów.
user@linux:~$ ls -r
plik_kopii plik2 plik1 katalog
- -S , --sort= size [rozmiar pliku]
Użycie tych parametrów powoduje posortowanie wyniku według wielkości plików. Największe pliki są wyświetlane jako pierwsze na liście, zaraz za katalogami:
user@linux:~$ ls -S
katalog_duzy plik plik1 plik1.1 plik_kopii
- -t , --sort=time [czas utworzenia pliku]
Za pomocą tego parametru sortuje się wyniki według zasu ich modyfikacji. Najnowsze pliki są wyświetlane jako pierwsze:
user@linux:~$ ls -t
duzy_plik katalog plik_kopii plik2 plik1
- -u , --time=atime , --time=access , --time=use
W tym przypadku wyniki sortowane są według czasu ostatniego dostępu do pliku. Pliki, do których odwołano się ostatnio, są wyświetlane jako pierwsze.
user@linux:~$ ls -u
duzy_plik plik1 plik2 katalog plik_kopii
- -U , --sort=none
Użycie tego parametru zapewni, że zawartość katalogu nie będzie sortowana. Elementy wyświetlone na liście wystąpią na niej dokładnie w takiej kolejności, w jakiej znajdują się w katalogu.
user@linux:~$ ls -U
plik1 plik2 katalog duzy_plik plik_kopii
- -X , --sort=extension [roszszerzenie pliku]
Użycie tego parametru powoduje posortowanie plików według ich rozszerzeń. Pliki, które takowych nie posiadają, zawsze są wypisywane jako pierwsze.
user@linux:~$ ls -X
duzy_plik katalog plik1 plik2 plik.exe plik1.jpg"/> plik2.mov plik.zip