Polecenia: touch, rm, mkdir, rmdir


meta: touch rm mkdir rmdir


Niezależnie od tego w jaki sposób korzystamy z komputera czasami musimy stworzyć, usunąć plik lub katalog. Jeżeli korzystamy ze środowiska graficznego możemy tworzyć przy użyciu myszki. W naszym przypadku będziemy częściej korzystać z konsoli. W tej sytuacji potrzebujemy nauczyć się robić to przy pomocy poleceń w trybie tekstowym. Dlatego poznajmy sposoby tworzenia plików oraz katalogów.

Rozszerzenia plików

Rozpocznijmy tę część od wyjaśnienia pojęcia rozszerzenie pliku. Czym to tak naprawdę jest?

Rozszerzeniem pliku nazywamy, oddzieloną kropką nazwę. Przykładowo plik obrazek.jpg będzie rozpoznawalny przez system jako plik z rozszerzeniem .jpg, w tym wypadku jako obraz, ale czy plik zawierający tekst musi mieć jakieś rozszerzenie? Otóż nie. W Linuksie pliki tekstowe, skrypty powłoki itd nie muszą mieć rozszerzenia, wystarczy że są.

Polecenie touch

Poznajmy teraz nasze pierwsze polecenie dzięki któremu tworzyć będziemy puste pliki. Do wyżej wymienionego zadania posłuży nam polecenie touch. Polecenie służy jedynie do stworzenia pliku. Przy jego pomocny nie można edytować i zmieniać czegokolwiek w pliku. Aby sprawdzić zawartość pliku należy użyć edytora tekstu. O edytorze tekstu pisałem w artykule Polecenia: edytor nano, cat, head, tail, more i du , dlatego zajrzyj tam jeżeli nie wiesz jakiego użyć. Spójrzmy na poniższy przykład:

kali@kali:~$ touch plik
kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$ nano plik
Wpisujemy dwa wyrazy „jestem tekstem” lub inne według uznania
ctrl+o - zapisujemy
ctrl+x - zamykamy
kali@kali:~$ head plik
jestem tekstem
kali@kali:~$ touch plik
kali@kali:~$ head plik
jestem tekstem
kali@kali:~$ 

Spójrzmy na to co wydarzyło się w konsoli po wpisaniu polecenia touch.

Na samym początku stworzyliśmy plik o nazwie plik. W kolejnym kroku edytowaliśmy go, potwierdzając, że jest pusty i wpisaliśmy w nim dwa wyrazy. Następnie zamknęliśmy edytor. Teraz korzystając z wcześniej poznanego polecenia head wypisujemy zawartość pliku. Wpisujemy ponownie polecenie tworzące puste pliki z tą samą nazwą i korzystamy z polecenia head. Zawartość pliku nie uległa zmianie. Nadal znajduje się ta sama treść co wcześniej. Skorzystanie z polecenia touch nie zmienia zawartości już istniejącego pliku. Kiedy napotka już stworzony plik, nic z nim nie robi. Stąd też wniosek polecenie touch służy jedynie do tworzenia pustych plików, ale nie nadpisuje już istniejących.

Opcje polecenia touch

Poniżej umieszczam listę opcji polecenia:

-a – nie zmienia daty ani czasu modyfikacji, tak jakby nic z plikiem nie robiono

-d [data, czas] – daje możliwość zmiany daty i czasu modyfikacji pliku

-f – ignoruje zachowanie kompatybilności z dystrybucją BSD

-m [czas] – zmiana czasu modyfikacji

-r [plik] – użycie czasu modyfikacji z innego pliku

-t [dokładna data] – bardzo rozbudowana opcja pozwala na dokładne ustalenie daty, godziny a nawet sekundy modyfikacji pliku

Polecenie remove

Stworzyć plik już potrafimy, teraz nadeszła pora nauczyć się je usuwać. Polecenie, służące do tego nazywa się rm. Powstało od angielskiego słowa remove, które oznacza usuń w języku polskim. Spójrzmy na poniższy przykład.

kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$ touch "plik do usuniecia"
kali@kali:~$ ls -l "plik do usuniecia"
-rw-r--r-- 1 kali kali 0 Sep 29 16:27 'plik do usuniecia'
kali@kali:~$ rm "plik do usuniecia"
kali@kali:~$ ls -l "plik do usuniecia"
ls: cannot access 'plik do usuniecia': No such file or directory
kali@kali:~$ 

Jak widać plik został usunięty.

Opcje polecenia remove

Oczywiście na tym nie kończy się rola polecenia rm. Ma ono jeszcze kilka opcji które przedstawiam poniżej:

-f – wymusza usuniecie pliku

-i – w przypadku kilku plików pyta o każdy czy usunąć

-r – usuwa wszystkie pliki które znajdują się w katalogu wraz z katalogiem

-v – nazwa każdego pliku który usuwamy będzie wyświetlona

Usuwanie kilku plików

Teraz wyobraźmy sobie sytuację, że chcielibyśmy usunąć kilka plików naraz. Uciążliwe byłoby wpisywanie za każdym razem polecenia i nazwy pliku. W interfejsie graficznym wystarczy zaznaczyć niechciane pliki i foldery, a następnie je usunąć. W przypadku konsoli należy skorzystać z polecenia rm oraz symbolu globalnego.

Czym są symbole globalne? Otóż to nic innego jak gwiazdka (*) oraz znak zapytania (?).

Symbol globalny gwiazdka (*)

Używając gwiazdki zastąpimy dowolny znak, lub też ciąg znaków.

Aby to lepiej zrozumieć spójrzmy na poniższy przykład:

kali@kali:~$ touch bardzo_dlugi_tekst
kali@kali:~$ ls
 bardzo_dlugi_tekst  'dla testu'   Downloads   Pictures   Public      Videos
 Desktop              Documents    Music       plik       Templates
kali@kali:~$ rm bardzo*
kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$ 

Jak można zauważyć w powyższym przykładzie część nazwy naszego pliku nie została napisana. Po pierwszym członie wyrazu napisałem gwiazdkę która spowodowała usunięcie wszystkich plików rozpoczynających się od słowa bardzo. W naszym przypadku jednego pliku. Gdyby było ich więcej usunęlibyśmy wszystkie których nazwa rozpoczynałaby się od słowa bardzo.

Symbol globalny znak zapytania (?)

W przypadku znaku zapytania zastępowana jest tylko jedna litera nazwy. Zobaczmy to na przykładzie.

kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$ touch kali
kali@kali:~$ ls
 Desktop      Documents   kali    Pictures   Public      Videos
'dla testu'   Downloads   Music   plik       Templates
kali@kali:~$ rm ?ali
kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$  

Zastąpiliśmy jedną literę w wyrazie kali symbolem znaku zapytania co spowodowało, że plik został usunięty.

A gdzie tu usuwanie kilku plików?

Powyższe przykłady niezupełnie wyjaśniają sposób usuwania kilku plików naraz. Usuwanie większej ilości plików polega na znalezieniu wspólnego elementu w ich nazwie. Aby to wyjaśnić posłużę się poniższym przykładem:

kali@kali:~$ touch plik_nois wzor_nois kartka_nois
kali@kali:~$ ls
 Desktop      Downloads     Pictures    Public      wzor_nois
'dla testu'   kartka_nois   plik        Templates
 Documents    Music         plik_nois   Videos
kali@kali:~$ rm *_nois
kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$ 

Podsumowując przykład:

  1. Stworzyliśmy trzy pliki.
  2. Ich wspólnym elementem było rozszerzenie _nois które posłużyło do usunięcia ich naraz.
  3. Gwiazdka zastąpiła całą nazwę, co spowodowało że wszystkie pliki które posiadały rozszerzenie _nois zostały usunięte.

Polecenie mkdir

Tworzyć i usuwać pliki już potrafimy, ale co z katalogami? Przy pomocy poznanych wcześniej poleceń takiej opcji nie ma. Zostało stworzone do tego zadania inne polecenie które nosi nazwę mkdir. Przejdźmy od razu do przykładu:

kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$ mkdir folder
kali@kali:~$ ls
 Desktop      Documents   folder   Pictures   Public      Videos
'dla testu'   Downloads   Music    plik       Templates
kali@kali:~$ ^C
kali@kali:~$ 

Polecenie rmdir

Jak ilustruje nam wcześniejszy przykład stworzyliśmy pusty katalog. Spróbujmy go teraz usunąć. Do tego zadania posłuży nam proste polecenie rmdir.

kali@kali:~$ ls
 Desktop      Documents   folder   Pictures   Public      Videos
'dla testu'   Downloads   Music    plik       Templates
kali@kali:~$ rmdir folder
kali@kali:~$ ls
 Desktop      Documents   Music      plik     Templates
'dla testu'   Downloads   Pictures   Public   Videos
kali@kali:~$ 

Podsumowanie

Chyba nikomu nie muszę udowadniać, że często tworzyć będziemy czy też usuwać różnego rodzaju pliki i foldery. Po zapoznaniu się z powyższym artykułem powinniśmy być w stanie swobodnie wykonywać te czynności przy pomocy konsoli. Ale na tym nasze poznanie Linuksa nie kończy się.


meta: touch rm mkdir rmdir