Polecenia do zarządzania plikami, wieloznaczniki

CZĘŚĆ 1: Narzędziownik administratora - operacje na plikach i katalogach

touch - powoływanie plików do życia

Analogia: Wyciągnięcie nowej, czystej kartki z szuflady i wpięcie jej do skoroszytu z nadanym tytułem.

Polecenie touch służy przede wszystkim do natychmiastowego tworzenia pustych plików (o rozmiarze 0 bajtów). W administracji systemem używa się go do przygotowywania szkieletów skryptów, plików konfiguracyjnych lub znaczników kontrolnych. Co ciekawe: jeśli plik już istnieje, touch nie zniszczy jego zawartości, a jedynie zaktualizuje datę jego ostatniej modyfikacji.

# Utworzenie pojedynczego, pustego pliku tekstowego:
touch notatka.txt

# Błyskawiczne utworzenie kilku różnych plików za jednym razem (oddzielonych spacją):
touch raport.txt skrypt.sh dane.csv

mkdir - budowanie przestrzeni (katalogów)

Analogia: Stawianie nowego, pustego regału w magazynie.

Polecenie mkdir (skrót od make directory) tworzy nowy katalog w bieżącej lub wskazanej ścieżce.

💡 Sekret mistrzów: Flaga -p (parents)

Domyślnie mkdir potrafi utworzyć tylko jeden poziom katalogu. Jeśli spróbujesz wpisać: mkdir Szkoła/Klasa3/Dokumenty, a foldery Szkoła i Klasa3 jeszcze nie istnieją - system odmówi posłuszeństwa i zgłosi błąd: No such file or directory.

Tutaj do gry wkracza flaga -p. Powoduje ona, że system w ułamku sekundy tworzy całą ścieżkę zagnieżdżeń (rodziców oraz dzieci). Jeśli któryś katalog pośredni już istnieje, system go pominie bez zgłaszania błędu.

# Zwykłe utworzenie pojedynczego katalogu:
mkdir Projekty

# Utworzenie całej zagnieżdżonej struktury jednym poleceniem (kluczowa technika na egzaminie INF.02!):
mkdir -p Firma/Dokumenty/Raporty

cp - powielanie zasobów

Analogia: Wizyta przy kserokopiarce. Oryginał leży nienaruszony na biurku, a Ty zanosisz świeżą kopię w nowe miejsce.

Polecenie cp (od copy) kopiuje pliki lub foldery ze źródła (źródło) do wskazanego miejsca docelowego (cel).

# Skopiowanie pliku konfiguracyjnego do innego katalogu:
cp config.cfg /etc/kopia_zapasowa/

# Skopiowanie pliku ze zmianą jego nazwy w nowym miejscu:
cp dane.csv archiwum/dane_kopia.csv

mv - zmiana lokalizacji lub tożsamości

Analogia: Fizyczne przeniesienie pudła na inną półkę w magazynie LUB przeklejenie naklejki z nową nazwą na tym samym pudle.

W Linuksie nie ma osobnego polecenia do zmiany nazwy (jak rename). Narzędzie mv (move) wykonuje dwie operacje zależnie od kontekstu:

  1. Przenosi plik do innego folderu.
  2. Zmienia nazwę pliku (jeśli ścieżka docelowa wskazuje ten sam folder, ale inną nazwę).
# Zmiana nazwy pliku w bieżącym katalogu:
mv stary_raport.txt nowy_raport.txt

# Przeniesienie pliku do podkatalogu 'Archiwum':
mv log.txt Archiwum/

rm - bezpowrotna utylizacja

Analogia: Wrzucenie dokumentu do przemysłowej niszczarki zintegrowanej z piecem hutniczym.

Narzędzie rm (remove) usuwa wskazane pliki.

WAŻNA ZASADA BEZPIECZEŃSTWA:

W konsoli Linuksa NIE MA KOSZA. Usunięte poleceniem rm dane znikają natychmiastowo, a ich odzyskanie w warunkach produkcyjnych jest niezwykle trudne lub wręcz niemożliwe. System zakłada, że wiesz, co robisz!

💡Flaga -r (rekurencja)

Domyślnie polecenie rm odmawia usuwania katalogów. Aby usunąć katalog wraz ze wszystkimi znajdującymi się w nim plikami i podkatalogami, musisz zastosować flagę -r (ang. recursive - schodzenie w dół każdego zagnieżdżenia).

# Bezpieczne usunięcie pojedynczego pliku:
rm tymczasowy.txt

# Rekurencyjne usunięcie całego katalogu wraz ze wszystkim, co zawiera:
rm -r StaryProjekt/

CZĘŚĆ 2: Znaki globalne (Wildcards)

Wyobraź sobie, że w jednym katalogu masz 1500 zdjęć i musisz przenieść tylko te z rozszerzeniem .png. Przenoszenie ich pojedynczo zajęłoby godziny. Znaki globalne (ang. Wildcards) to szablony, które powłoka Bash podstawia w miejsce nazw pasujących plików.

Na egzaminie INF.02 absolutnym fundamentem są dwa znaki:

Gwiazdka * - "Dżoker Uniwersalny"

# Dopasuje: raport.txt, test.txt, a.txt, bardzo_dluga_nazwa.txt
mv *.txt Dokumenty/

# Dopasuje każdy plik zaczynający się od słowa "kopia" (np. kopia.zip, kopia_bazy_2026.sql)
rm kopia*

Znak zapytania ? - "Snajper Jednego Znaku"

# Dopasuje: test1.txt, test2.txt, testA.txt
# NIE dopasuje: test10.txt (bo "10" to dwa znaki!), ani test.txt (brak znaku)
rm test?.txt

🥊 Wielki pojedynek: plik*.txt vs plik?.txt

Załóżmy, że w Twoim folderze roboczym znajduje się 5 następujących plików:

Zobacz, jak zareagują na nie oba wzorce:

Wzorzec wyszukiwania Pasujące pliki Dlaczego tak się stało?
plik*.txt • plik.txt
• plik1.txt
• plik2.txt
• plik99.txt
• plikARCHIWUM.txt
Dopasował WSZYSTKIE pliki! Gwiazdka dopasowała 0 znaków (plik.txt), 1 znak (plik1, plik2), 2 znaki (plik99) oraz długie słowo (plikARCHIWUM).
plik?.txt • plik1.txt
• plik2.txt
Dopasował TYLKO TE DWA pliki! Pytajnik zażądał obecności dokładnie jednego symbolu po słowie „plik”. Odrzucił brak znaku (plik.txt) oraz więcej niż jeden znak (99, ARCHIWUM).

SZYBKA ŚCIĄGAWKA PRZED WEJŚCIEM NA PRACOWNIĘ

Polecenie / Znak          Kluczowe przełączniki   Podstawowe zastosowanie Złota zasada / Cenna uwaga
touch brak Tworzenie pustych plików Możesz podać wiele nazw po spacji: touch a b c
mkdir -p (parents) Tworzenie folderów / struktur Zawsze używaj -p, gdy tworzysz ścieżki zagnieżdżone
cp -r (dla folderów) Kopiowanie danych Składnia: cp [co] [gdzie]
mv brak Przenoszenie i zmiana nazwy Służy zarówno do przeprowadzki pliku, jak i zmiany podpisu
rm -r (rekurencyjnie) Usuwanie plików i katalogów Brak kosza! Usunięcie z flagą -r czyści całe drzewo folderu
* operator powłoki Zastępuje od 0 do nieskończoności znaków *.txt wybierze każdy plik tekstowy na świecie
? operator powłoki Zastępuje dokładnie 1 dowolny znak dane?.csv złapie dane1.csv, ale zignoruje dane10.csv

🚀 Wskazówka na egzamin: Przed wykonaniem groźnego polecenia rm *wzorzec*, zawsze możesz najpierw wpisać ls *wzorzec*. W ten sposób na własne oczy zobaczysz listę plików, które za chwilę zostaną skasowane, i upewnisz się, że Twój Wildcard jest w 100% precyzyjny!