Konsola – Pliki i katalogi

Informacje o plikach i katalogach

Przejdźmy do kolejnego etapu: operacji na katalogach i plikach. Najpierw sprawdźmy nazwę katalogu w którym się znajdujemy.

[ziutus@localhost ziutus]$ pwd
/home/ziutus

Dalej sprawdźmy co znajduje się w tym katalogu.

[ziutus@localhost ziutus]$ ls
Desktop/        drakeconf.png  menudrake1.png      public_html/  www.pdi.net/
   zrzut ekranu3.png
Documents/      evolution/     OpenOffice.org1.0/  test.html     zrzut
ekranu1.png

Wszystkie pliki (Czyli także te ukryte) zobaczymy dodając parametr -a

[ziutus@localhost ziutus]$ ls -a
./                                    .draksync        .mailcap            .ssh/
../                                   evolution/       .mc/
.sversionrc
.bash_history                         .gaimrc          .mcop/
test.html
.bash_logout                          .gconf/          .MCOP-random-seed   tmp/

Natomiast więcej informacji o samych plikach uzyskamy dzięki parametrowi -l. Będą to: prawa dostępu, właściciel i grupa właścicieli, wielkość, czas ostatniej modyfikacji.

[ziutus@localhost ziutus]$ ls -l
razem 396
drwxr-xr-x    3 ziutus   ziutus       4096 sie 22 07:00 Desktop/
drwxr-xr-x    2 ziutus   ziutus       4096 sie 14 18:07 Documents/
-rw-r--r--    1 ziutus   ziutus      39438 sie 14 21:45 drakeconf1.png
-rw-r--r--    1 ziutus   ziutus      39438 sie 14 21:45 drakeconf.png
drwx------    4 ziutus   ziutus       4096 sie 17 07:59 evolution/
drwx------    5 ziutus   ziutus       4096 sie 22 06:29 Mail/
-rw-r--r--    1 ziutus   ziutus      69307 sie 17 11:18 zrzut ekranu1.png
-rw-r--r--    1 ziutus   ziutus      87013 sie 17 11:31 zrzut ekranu2.png
-rw-r--r--    1 ziutus   ziutus      69101 sie 17 11:42 zrzut ekranu3.png

Czasem w skryptach wygodnie jest oddzielić informację o nazwie katalogu od nazwy pliku w nim. Dokonujemy tego przy pomocy poleceń dirname (podaje nazwę katalogu) oraz basename (podaje nazwę pliku) podając im pełną ścieżkę do pliku.

[ziutus@localhost ziutus]$ dirname /home/ziutus/test.html
/home/ziutus
[ziutus@localhost ziutus]$ basename /home/ziutus/test.html
test.html
[ziutus@localhost ziutus]$

Tworzenie, przenoszenie i kasowanie plików oraz katalogów

Katalogi tworzymy przy pomocy polecenia mkdir a usuwamy przez wydanie komendy rmdir. Między katalogami przemieszczamy dzięki cd.

[ziutus@localhost ziutus]$ mkdir test
[ziutus@localhost ziutus]$ cd test
[ziutus@localhost test]$ pwd
/home/ziutus/test
[ziutus@localhost test]$ cd ..
[ziutus@localhost ziutus]$ rmdir test
[ziutus@localhost ziutus]$ cd test
bash: cd: test: Nie ma takiego pliku ani katalogu

przejdźmy do plików. W celu przećwiczenia operacji na plikach utwórzmy pusty katalog test a następnie przejdźmy do niego.

[ziutus@localhost test]$ pwd
/home/ziutus/test
[ziutus@localhost test]$ ls

Następnie utwórzmy pusty plik test1.txt poleceniem touch test1.txt

[ziutus@localhost test]$ touch test1.txt
[ziutus@localhost test]$ ls
test1.txt

Zmianę nazwy (a także przeniesienie go w inne miejsce) dokonamy dzięki poleceniu mv

[ziutus@localhost test]$ mv test1.txt test2.txt
[ziutus@localhost test]$ ls
test2.txt

Pliki kopiujemy poleceniem cp.

[ziutus@localhost test]$ ls
test2.txt
[ziutus@localhost test]$ cp test2.txt test1.txt
[ziutus@localhost test]$ ls
test1.txt  test2.txt

A usuwamy komenda rm

[ziutus@localhost test]$ rm test2.txt
rm: usunąć `test2.txt'? t
[ziutus@localhost test]$ ls
test1.txt

Zmiana przynależności pliku

Kolejną ważną sprawą jest przynależność plików do właściciela, czy też grupy właścicieli. Czasem nadchodzi potrzeba jego zmiany, dokonamy tego przy pomocy komendy chown. Składnia polecenia obejmuję nazwę nowego użytkownika, nazwę grupy oddzieloną od nazwy użytkownika kropką oraz nazwę pliku, który modyfikujemy.

[ziutus@localhost test]$ ls -l
razem 0
-rw-r--r--    1 ziutus   ziutus          0 sie 23 15:16 test1.txt
[ziutus@localhost test]$ chown ziutus.lp test1.txt
[ziutus@localhost test]$ ls -l
razem 0
-rw-r--r--    1 ziutus   lp              0 sie 23 15:16 test1.txt

Samą grupę możemy zmienić dzięki poleceniu chgrp.

razem 0
-rw-r--r--    1 ziutus   lp              0 sie 23 15:16 test1.txt
[ziutus@localhost test]$ chgrp ziutus test1.txt
[ziutus@localhost test]$ ls -l
razem 0
-rw-r--r--    1 ziutus   ziutus          0 sie 23 15:16 test1.txt

Wyszukiwanie plików

Pliki wyszukujemy dzięki poleceniu find. W najprostszej postaci podajemy tylko interesujący nas ciąg znaków. Opcjonalnie przed nim możemy jeszcze dodać ścieżkę przeszukiwania.

[ziutus@localhost test]$ ls
ala.txt  test1.txt
[ziutus@localhost test]$ find  te*
test1.txt

Bardzo przydatna jest możliwość wywołania polecenia na znalezionych plikach. Przypuśćmy, iż chcemy plikom w podkatalogach nadać prawo 640 a katalogom 750. Jak to uczynić? Polecenie find ma możliwość wywołania polecenia na znalezionych obiektach, należy użyć opcji -exec i podać polecenie (nazwę pliku zastępujemy ciągiem {}). Polecenie to kończymy znakiem `;

find . -type -d -exec chmod 750 {} ';'
find . -type -f -exec chmod 640 {} ';'

Możemy to też osiągnąć w inny sposób z wykorzystaniem komendy xargs:

find . type -d | xargs chmod 750
find . type -f | xargs chmod 640

Polecenie find umożliwia przeszukiwanie po wielu warunkach, jak rozmiar, właściciel, prawa dostępu itp. Więcej o nim dowiesz się z podręcznika systemowego man find.

Kopiowanie bitowe

Czasem można się także spotkać z potrzebą kopiowania bitowego (np. przy tworzeniu obrazu dyskietki czy partycji). Dokonujemy tego przy pomocy polecenia dd. Ma ono dwa parametry if wskazujący źródło oraz of wskazujący cel.

 

dd if=/dev/fd0 of=/tmp/fd0

Określenie typu pliku

W niektórych sytuacjach może okazać się przydatne określenie typu pliku z którym mamy do czynienia. Przydatne może się okazać tutaj polecenie find służące właśnie temu celowi.

[ziutus2@localhost ziutus2]$ file /etc/lilo.conf
/etc/lilo.conf: ASCII text

[ziutus2@localhost ziutus2]$ file /usr/bin/file
/usr/bin/file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, \
dynamically linked (uses shared libs), stripped

ćwiczenie 4

 

  1. Proszę przenieść się do katalogu domowego. Następnie sprawdzić przy pomocy polecenia pwd czy faktycznie tam się Państwo znajdują oraz wyświetlić listę plików łącznie z ukrytymi. Proszę zapamiętać, które pliki mają w swojej nazwie słowo bash.
  2. Proszę utworzyć katalog test w katalogu domowym. Następnie przejść do niego i utworzyć w nim plik test.txt. Dalej proszę zmienić jego nazwę na test2.txt. Utworzony plik skopiujmy do tego samego katalogu pod nazwą test1.txt. A plik test2.txt usuwamy. Gdy wszystko jest wykonane usuwamy także plik test1.txt i wychodzimy z katalogu i sam katalog usuwamy.
  3. Proszę utworzyć plik o nazwie testowy.txt. Następnie zmienić jego właściciela na użytkownika root. Podobnie należy zmienić grupę właścicieli na root. Proszę wyszukać pliki zawierające słowo bash w nazwie w katalogu domowym.

 

Dodaj komentarz