Pliki, katalogi i archiwa – najważniejsze polecenia w Linuxie

by Patryk

Wiesz już, jak poruszać się po powłoce systemu Linux czas zrobić kolejny krok i przejść do komend związanych z plikami i katalogami. Umiejętność szybkiego tworzenia folderów, plików oraz zarządzania nimi w terminalu Linux jest bezcenna (szczególnie gdy GUI postanawia mieć wolne).

W tej części omówimy najważniejsze operacje na katalogach i plikach w systemie Linux, skupiając się na podstawowych poleceniach, które wykorzystasz na co dzień. Dodatkowo poznasz komendy związane z archiwizacją i kompresją, czyli jak pakować pliki w paczki bez taśmy klejącej i kartonów.

Polecenia zarządzające plikami i katalogami

Tworzenie katalogów: mkdir

W systemie Linux tworzenie katalogów to podstawa. Służy do tego polecenie mkdir.

  • Jeśli nazwa ma spacje (np. “Moje pliki”), użyj cudzysłowu.
  • Przełącznik -p tworzy całą ścieżkę katalogów, jeśli wcześniej nie istniały.

Tworzenie plików: touch

Oprócz tworzenia katalogów warto poznać też polecenie, które pozwala szybko utworzyć pojedynczy plik albo kilka plików naraz. Służy do tego polecenie touch. Jeśli plik już istnieje, touch go nie nadpisze, zamiast tego zaktualizuje znaczniki czasu (najczęściej modyfikacji), czyli tak jakby powiedział: „hej, ten plik właśnie był ruszany”.

Przełącznik -d pozwala ustawić konkretną datę i godzinę. Przykładowo, czasy dostępu i modyfikacji dla myfile.txt można ustawić na 3 marca 2024, 12:00:

Znaczniki czasu pliku: mtime, ctime, atime

  • mtime (modification time) – czas ostatniej zmiany zawartości pliku (np. edycja treści).
  • ctime (change time) – czas ostatniej zmiany metadanych (uprawnienia, właściciel, nazwa) lub zawartości.
  • atime (access time) – czas ostatniego odczytu/uruchomienia pliku.

Poleceniem stat możesz zobaczyć szczegółowe informacje odnośnie danego pliku. W tym wszystkie znaczniki czasu.


Usuwanie plików i katalogów: rm

Pliki usuwa się poleceniem rm. Możesz skasować jeden plik, wiele plików naraz, a także używać metaznaków (np. *) do wskazania większej grupy.

Polecenie to potrafi też usuwać katalogi razem z zawartością, ale wtedy musisz użyć odpowiednich przełączników:

  • -r – usuwa katalog rekurencyjnie, czyli wraz z plikami i podkatalogami,
  • -f – wymusza usunięcie bez pytań i bez marudzenia (czyli: “kasuj i nie zawracaj głowy”).

Usuwanie katalogów: rmdir

W przeciwieństwie do rm, które usuwa głównie pliki (a przy odpowiednich opcjach także katalogi), polecenie rmdir zostało stworzone specjalnie do usuwania katalogów. Jest jednak jeden ważny warunek: rmdir usuwa tylko puste katalogi.

Jeśli katalog zawiera pliki lub podkatalogi, rmdir odmówi współpracy. Wówczas należy skorzystać z polecenia rm -rf.


Kopiowanie plików i katalogów: cp

Polecenie cp kopiuje pliki i katalogi. Oryginał zostaje na miejscu, a Ty dostajesz kopię. Za pomocą przełącznika -r możemy kopiować rekursywnie całą zawartość katalogu wraz z pod folderami.


Przenoszenie i zmiana nazwy: mv

Polecenie mv przenosi pliki i katalogi do innej lokalizacji. Możesz go też użyć do zmiany nazwy pliku. Wystarczy „przenieść” go w to samo miejsce, ale pod inną nazwą.

W odróżnieniu od cp, mv nie tworzy kopii. Plik po operacji znajduje się w nowej lokalizacji (lub ma nową nazwę).


Linki w Linuxie: ln (dowiązania twarde i symboliczne)

W Linuxie podobnie jak w Windowsie możesz tworzyć skróty, tylko że tutaj nazywają się one linkami (dowiązaniami). Służy do tego polecenie ln, które pozwala tworzyć powiązania między plikami lub katalogami.

W Linuksie istnieją dwa typy łączy:

  • łącza twarde (hard link)
  • łącza symboliczne (symlink)

W praktyce najczęściej używa się łączy symbolicznych, tworzonych przez ln -s. Dzięki temu możesz mieć dostęp do tego samego pliku w wielu miejscach bez kopiowania danych.

Łącza twarde (hard link)

Łącze twarde to druga nazwa tego samego pliku. Oba wpisy wskazują na te same dane na dysku. Usunięcie „oryginału” nie psuje działania, dopóki istnieje inny hard link.

  • Po echo “abc” > /var/tmp/hardlink.txt zawartość jest widoczna też w /home/plik10.txt, bo to ten sam plik.
  • Po rm /home/plik10.txt plik pod ścieżką /var/tmp/hardlink.txt wciąż działa i zawiera dane. Dzieje się tak ponieważ rm usuwa tylko odnośnik w katalogu. Dane są kasowane dopiero wtedy, gdy zniknie ostatni hard link do pliku.

Łącza symboliczne (symlink)

Łącze symboliczne to wskaźnik na ścieżkę. Działa jak skrót: „idź tam i otwórz to”. Usunięcie oryginału spowoduje, że skrót stanie się bezużyteczny (zepsuty).

  • Gdy plik źródłowy istnieje, zapis echo abc > /var/tmp/softlink.txt trafia do /home/plik20.txt.
  • Po rm /home/plik20.txt odczyt z /var/tmp/softlink.txt się nie uda, ponieważ oryginał został usunięty. Łącze symboliczne zwykle nadal będzie widoczne w /var/tmp/, ale będzie to tzw. broken link (zepsute dowiązanie), bo wskazuje na plik, którego już nie ma. Czyli nie tyle nie istnieje, co istnieje, ale prowadzi donikąd.

Archiwizacja i kompresja

Archiwizacja polega na spakowaniu wielu plików lub katalogów do jednego pliku (archiwum). Kompresja natomiast to zmniejszanie rozmiaru danych za pomocą algorytmów kompresji, dzięki czemu pliki zajmują mniej miejsca na dysku. Połączenie archiwizacji i kompresji daje archiwa, które są mniejsze, wygodne do przenoszenia i łatwe do wysłania. Idealne, gdy chcesz „zrobić paczkę” z danych bez taszczenia całego katalogu.

Tworzenie archiwów: tar

Do tworzenia archiwów w Linuksie najczęściej używa się polecenia tar. Składnia jest prosta, można zarchiwizować cały katalog lub poszczególne pliki.

  • tar cf nazwa.tar /sciezka/do/katalogu
  • tar cf nazwa.tar plik1.txt plik2.txt

Archiwum zostanie utworzone w katalogu, w którym aktualnie jesteś (chyba że podasz inną ścieżkę w nazwie pliku wynikowego) i będzie miało rozszerzenie .tar.

Ważne: tar sam w sobie archiwizuje, ale nie kompresuje. Żeby archiwum było mniejsze, należy dodać odpowiednią opcję kompresji.

Kompresja gzip: tar.gz

Służy do kompresji i dekompresji plików przy użyciu algorytmu kompresji gzip. Tworzy pliki z rozszerzeniem .gz. Powszechnie uważany jest za najszybszy. Aby zastosować ten format należy dodać literkę z jako przełącznik.

Na przykładzie poniżej możesz zobaczyć tworzenie archiwum i jego kompresji za pomocą algorytmu gzip. Polecenie file pozwala sprawdzić informacje na temat danego pliku, w tym przypadku pokazuje, że jest to plik skompresowany algorytmem gzip.

Aby rozpakować takie archiwum należy użyć wystarczy zamienić literkę c na x. Dodatkowo jeśli chcemy wskazać katalog do którego ma zostać rozpakowane archiwum należy skorzystać z przełącznika -C, po którym wskazujemy katalog docelowy. Aby wyświetlić zawartość archiwum należy użyć przełącznika -t.

Kompresja bzip2: tar.bz2

Służy do kompresji i dekompresji plików przy użyciu algorytmu kompresji bzip2. Tworzy pliki z rozszerzeniem .bz2. Zapewnia lepszą kompresję ale jest wolniejszy od gzip. Aby zastosować ten format należy dodać literkę j.

Na przykładzie poniżej możesz zobaczyć tworzenie archiwum i jego kompresji za pomocą algorytmu bzip2. Podobnie jak wcześniej w wyniku polecenia file możesz zauważyć, że jest to plik skompresowany algorytmem bzip2.

Podsumowanie

Dołożyliśmy kolejną cegiełkę: potrafisz tworzyć i usuwać pliki oraz katalogi, kopiować i przenosić dane, a także robić archiwa przez tar z kompresją gzip lub bzip2. W kolejnym artykule przejdziemy krok dalej i pokażę Ci, jak sprawnie pracować z tekstem w Linuxie, bo żaden plik nie obejdzie się bez treści.

You may also like

Leave a Comment