Pliki i katalogi

Jedą z podstawowych funkcji systemu operacyjnego w komputerze jest zapewnienie dostępu do danych. Z punktu widzenia użytkownika potrzebne są do tego narzędzia które pozwalają tworzyć i listować pliki, przeglądać je, zmieniać ich nazwy i atrybuty, grupować w logiczne struktury, archiwizować i w końcu usuwać.

W Linuksie operowanie na plikach można wykonywać, podobnie jak i inne rzeczy, na wiele różnych sposobów. Tu zajmiemy się podstawowymi narzędziami do operacji plikowych w wierszu poleceń i w terminalu. Zakładamy, że czytelnik posiada podstową wiedzę o plikach i katalogach w systemach plików. Omawiamy krótko polecenia, ich główne funkcje oraz pokazujemy praktyczne użycie.

ls

Podstawowe polecenie do listowania plików w katalogach to ls.

Bez żadnych dodatkowych opcji polecenie 'ls' listuje pliki znajdujące się w bieżącym katalogu:

$ ls

dokumenty  filmy  obrazek.png  plik-testowy  skrypt1.sh  zupa-pomidorowa-przepis.txt

Widać kilka nazw. Jak zobaczymy dalej, są to nazwy plików i katalogów. Niekiedy obiekty na liście z programu ls są oznaczone kolorami w zależności od typu:

Główne funkcje polecenia ls

Szczegółowa forma listy plików

Z opcją -l pliki są wyświetlane w postaci tabeli, widoczne są dodatkowe informacje takie jak atrybuty pliku, właściciel, rozmiar, data modyfikacji, np.

$ ls -l 
total 88
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 dokumenty
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 filmy
-rw-r--r-- 1 libran libran 72100 Nov 11 20:30 obrazek.png
-rw-rw-r-- 1 libran libran     0 Nov 11 20:43 plik-testowy
-rwxrwxr-x 1 libran libran   198 Nov 11 20:44 skrypt1.sh
-rw-rw-r-- 1 libran libran  2129 Nov 11 20:28 zupa-pomidorowa-przepis.txt

Pliki ukryte

Z przełącznikiem -a pokazywane są ukryte pliki. Pliki których nazwa zaczyna się od . (kropka) w Linuksie są umownie traktowane jako pliki ukryte. Opcja -a wyłącza ignorowanie tych plików. Wyświetlane jest wszystko w bieżącym katalogu, np.

$ ls -a
.   .applrc  dokumenty  obrazek.png   skrypt1.sh
..  .config  filmy      plik-testowy  zupa-pomidorowa-przepis.txt

Zauważmy, że dodatkowo widoczne są pliki .applrc oraz .config zaczynające się kropką, a także dwa obiekty . i ... Ich znaczenie zostanie objaśnione w dalszej części.

Sortowanie według rozmiaru;

ls pozwala posortować wyświetlane pliki według rozmiaru, największe znajdują się na początku listy.

$ ls -lS
total 88
-rw-r--r-- 1 libran libran 72100 Nov 11 20:30 obrazek.png
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 dokumenty
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 filmy
-rw-rw-r-- 1 libran libran  2129 Nov 11 20:28 zupa-pomidorowa-przepis.txt
-rwxrwxr-x 1 libran libran   198 Nov 11 20:44 skrypt1.sh
-rw-rw-r-- 1 libran libran     0 Nov 11 20:43 plik-testowy

Sortowanie według czas modyfikacji; najnowsze na początku

$ ls -lt
total 88
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 filmy
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 dokumenty
-rwxrwxr-x 1 libran libran   198 Nov 11 20:44 skrypt1.sh
-rw-rw-r-- 1 libran libran     0 Nov 11 20:43 plik-testowy
-rw-r--r-- 1 libran libran 72100 Nov 11 20:30 obrazek.png
-rw-rw-r-- 1 libran libran  2129 Nov 11 20:28 zupa-pomidorowa-przepis.txt

Sortowanie odwrotne

Danie przełącznika -r powoduje, że sortowanie według rozmiaru albo daty jest wykoywane w odwrotnym porządku. o najstarszych do najnowszych, i od najmniejszych do największych.

$ ls -lSr
total 88
-rw-rw-r-- 1 libran libran     0 Nov 11 20:43 plik-testowy
-rwxrwxr-x 1 libran libran   198 Nov 11 20:44 skrypt1.sh
-rw-rw-r-- 1 libran libran  2129 Nov 11 20:28 zupa-pomidorowa-przepis.txt
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 filmy
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 dokumenty
-rw-r--r-- 1 libran libran 72100 Nov 11 20:30 obrazek.png

Informacja o katalogu

Jeśli argumentem polecenia ls jest katalog, to listuje ono jego zawartość:

$ ls -l filmy
total 8
-rw-rw-r-- 1 libran libran 5 Nov 29 21:10 big_buck_bunny_1080p_h264.mov
-rw-rw-r-- 1 libran libran 5 Nov 29 21:17 FourHorsemenOfTheApocalypse.mp4

Jednak jeśli dodamy przełącznik -d to zostanie wylistowana tylko informajca o samym katalogu:

$ ls -ld filmy
drwxrwxr-x 2 libran libran 4096 Nov 29 21:17 filmy

Listowanie rekurencyjne

Przełącznik -R powoduje rekurencyje listowanie zawartości wszystkich podkatalogów we wskazanym lub bieżącym katalogu.

$ ls -lR
total 88
drwxrwxr-x 2 libran libran  4096 Nov 11 20:45 dokumenty
drwxrwxr-x 2 libran libran  4096 Nov 29 21:17 filmy
-rw-r--r-- 1 libran libran 72100 Nov 11 20:30 obrazek.png
-rw-rw-r-- 1 libran libran     0 Nov 11 20:43 plik-testowy
-rwxrwxr-x 1 libran libran   198 Nov 11 20:44 skrypt1.sh
-rw-rw-r-- 1 libran libran  2129 Nov 11 20:28 zupa-pomidorowa-przepis.txt

./dokumenty:
total 0

./filmy:
total 8
-rw-rw-r-- 1 libran libran 5 Nov 29 21:10 big_buck_bunny_1080p_h264.mov
-rw-rw-r-- 1 libran libran 5 Nov 29 21:17 FourHorsemenOfTheApocalypse.mp4

Polcenie ls ma jeszcze więcej przełączników, które pozwalają wybierać jaki informacje mają być wyświetlone. Ich omówienie wykracza poza ten artykuł. Zainteresowanych odsyłamy od podręcznika użytkownika man ls lub do sieci.

pwd

Pracując w powłoce Bash w Linuksie zawsze mamy do dyspozycji pewien domyślny katalog. Mówimy, że znajdujemy się w bieżącym katalogu roboczym. Za raz po zalogowaniu się jest to katalog domowy. Katalog tej jest przeszukiwany i listowany przez polecenia takie jak ls ale nie tylko. Są w nim zapisywane pliki z różnych programoów jeżeli nie wskazana konkretnej ścieżki. Bieżący katalog można wyświetlić poleceniem pwd.

$ pwd
/home/libran/lxw

cd

Wskazanie bieżącego katalogu roboczego w powłoce można zmieniać, można poruszać się między katalogami. Służy do tego polecenie cd:

$ pwd
/home/libran/lxw
$ cd filmy
$ pwd
/home/libran/lxw/filmy

Komenda cd zmienia bieżący katalog na ten wskazany jako argument. Argumentem może być katalog będący podkatalogiem bieżącego katalogu, katalog położony w pełnej ścieżce jeśli argument zaczyna się znaku '/'. Jak argument mogą również zostać podane specjalne symbole: . - oznaczający bieżący katalog, oraz .. - oznaczający katalog nadrzędny. Katalogi można łączyć za pomocą znaku / tworząc ścieżkę katalogów. Pojedynczy, samodzielny znak / oznacza główny katalog systemowy (ang. root). cd użyte bez żadnego argumentu przenosi do katalogu domowego użytkownika.

Przykłady zastosowania:

$ pwd
/home/libran/lxw/filmy

$ cd ..
$ pwd
/home/libran/lxw

$ cd 
$ pwd
/home/libran

$ cd /var/log
$ pwd
/var/log

$ cd ../lib/man-db
$ pwd
/var/lib/man-db

Powłoka Bash może wyświetlać bieżący katalog w znaku zachęty (prompt):

libran@libran:/var/lib/man-db $ pwd
/var/lib/man-db

W przykładach, dla większej czytelności pomijamy ten aspekt pracy w powłoce.

Powiązane polecenia i narzędzia

linux polecenia