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:
- Stworzyliśmy trzy pliki.
- Ich wspólnym elementem było rozszerzenie _nois które posłużyło do usunięcia ich naraz.
- 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