Narzędzia użytkownika

Narzędzia witryny


Pasek boczny

so:files_basics

Kopiowanie, przenoszenie, i usuwanie plików

Do utworzenia pustego pliku możesz użyć touch plik.
Aby utworzyć plik z zawartością, możesz użyć fortune > plik lub echo zawartość > plik.
Polecenia touch i echo, jak również znaczenie > zostaną omówione później.

Aby wyświetlić plik, użyj cat plik.

Katalogi

mkdir dir tworzy nowy katalog.
mkdir -p dir1/dir2/dir3 tworzy katalog dir1, i katalog dir2 w dir1, i katalog dir3 w dir1/dir2.
Podając przełącznik -p polecenie mkdir nie wyświetla błędu jeśli katalog już istnieje.

Do usunięcia pustego katalogu można użyć rmdir dir.

Zadanie 1 Stwórz następujące drzewo katalogów:

.
├── foo
│   ├── baz
│   │   └── bar
│   └── bar
└── foobaz
    └── bar

Zadanie 2 Usuń katalog foo/baz.

Twarde i symboliczne dowiązania

Wiele wpisów w katalogach może wskazywać na ten sam plik. Nazywa się to twardym dowiązaniem (hard link).
Wpis w katalogu może również wskazywać na inny wpis w katalogu. Nazywa się to dowiązaniem symbolicznym (soft link / symbolic link, zwykle skracane do symlink).

Wszystkie Linuksowe systemy obsługują dowiązania twarde do zwykłych plików i symlinki do dowolnych ścieżek (np. pliku lub katalogu).

Aby utworzyć twarde łącze, można użyć ln źródło cel.
Aby utworzyć symlink, można użyć ln -s źródło cel.

Zadanie 3 Stwórz plik plik1 z zawartością. Stwórz twarde dowiązanie do pliku plik1 o nazwie plik2. Zmodyfikuj plik2. Wyświetl plik1.

Zadanie 4 Komenda ls może wyświetlić ilość twardych dowiązań. Sprawdź gdzie ta informacja jest wyświetlana.

Miejsce na dysku wykorzystywane przez plik wraca do puli wolnej przestrzeni gdy liczba dowiązań spadnie do 0 (wszystkie wpisy w katalogach, które wskazują na plik są usunięte) i plik nie jest już otwarty w żadnym procesie.

Zadanie 5 Utwórz w swoim katalogu domowym symlink o nazwie TMP wskazujący na /tmp. Zmień katalog na TMP. Co wypisuje pwd?

Zadanie 6 Utwórz w swoim katalogu domowym symlink o nazwie loop wskazujący na twój katalog domowy. Wejdź do loop. I wejdź jeszcze raz do loop.

Zadanie 7 Utwórz symlink do nieistniejącej ścieżki. Wyświetl zawartość katalogu w którym jest ten symlink.

Polecenie readlink [-f] cel rozwiązuje wszystkie symlinki i wyświetla kanoniczną postać ścieżki.

System plików Windows NTFS też obsługuje dowiązania. Tworzenie ich jest możliwe np. poleceniem mklink.

Kopiowanie i przenoszenie plików

Pliki można kopiować komendą cp i przenosić (bądź zmieniać nazwę) komendą mv (nazwy pochodzą odpowiednio od słów copy i move).

Podstawowa składnia to cp/mv źródłocel.
Można podać wiele plików źródłowych jeżeli cel jest katalogiem.
Jeśli cel jest plikiem, to zostanie bez ostrzeżenia nadpisany (o ile nie zostanie użyty przełącznik -i bądź -n).

Domyślnie cp odmówi kopiowania katalogu. Przełącznik -r pozwoli skopiować rekurencyjnie katalog z zawartością.

cp kopiując plik tworzy nowy plik z aktualną datą, domyślnymi uprawnieniami itp.
Aby skopiować rekursywnie, zachować daty, uprawnienia i inne, można użyć przełącznika -a (--archive).

Z przełącznikiem -l program cp tworzy twarde dowiązania zamiast kopiować pliki. Można to połączyć z --recursive.

Zadanie 8 Skopuj jednym poleceniem pliki /etc/os-release i /etc/SUSE-brand do bieżącego katalogu.

Zadanie 9 Wykonaj mkdir someDir && for F in plik{1..3}; do echo $RANDOM$RANDOM > someDir/$F; done które stworzy katalog someDir z trzema plikami w środku.

Zadanie 10 Skopiuj rekurencyjnie someDir i zawartość.

Zadanie 11 Przenieś nowo utworzony katalog do środka katalogu someDir.

Zadanie 12 Zmień nazwę katalogu someDir na inną.

Zadanie 13 Skopiuj nowo nazwany katalog podając przełączniki -al. Zmień wybrany plik w którymkolwiek z katalogów. Treść których plików uległa zmianie?
(Wyświetl je cat nazwa_pliku lub wyświetl daty modyfikacji z sekundami przez ls -l --time-style=+%H:%M:%S … lub tree -D --timefmt=%H:%M:%S …)

Kopiowanie plików do/z maszyny zdalnej

Za pomocą SSH można kopiować pliki. Jeśli ktoś ma dostęp do SSH na zdalnej maszynie, to może kopiować pliki komendą scp.
scp rozumie nazwa jako ścieżkę do lokalnego pliku i użytkownik@host:nazwa jako ścieżkę do pliku na zdalnej maszynie. Zdalne względne ścieżki są rozwiązywane względem katalogu domowego.
scp przyjmuje przełącznik -r do rekursywnego kopiowania katalogów.

MS Windows ma domyślnie komendę scp, ale zwykle wygodniej jest korzystać z menadżerów plików wspierających SSH.

Większość serwerów SSH wspiera też protokół SFTP, pozwalający na wygodniejsze kopiowanie plików.
sftp użytkownik@host uruchamia linię poleceń sftp. Działają w niej ls i cd do nawigowania po zdalnych plikach oraz get i put do przenoszenia plików. help pokaże wszystkie wspierane komendy.

Zadanie 14 Stwórz plik w katalogu /tmp swojego komputera. Skopiuj go do katalogu domowego użytkownika student na innym komputerze.

Zadanie 15 Skopiuj ten plik do katalogu /tmp innego komputera.

Zadanie 16 Skopiuj ten plik do katalogu /tmp innego komputera używając sftp.

Rsync

Program rsync jest powszechnie używany do kopiowania plików i katalogów. Wydajnie porównuje pliki źródłowe z docelowymi i kopiuje tylko różnice. Może kopiować dane do/z zdalnych urządzeń, a także może kompresować dane przesyłane przez sieć dla zwiększenia przepustowości. rsync jest też powszechnie używany do tworzenia kopii zapasowych.

Usuwanie plików

Program usuwający pliki nazywa się rm (od remove).

rm domyślnie nie usunie katalogów (niezależnie czy są puste) ani plików chronionych przed zapisem.

Aby usunąć katalog poleceniem rm (wraz z całą zawartością) trzeba dodać przełącznik -r.

Aby usunąć plików zabezpieczony przed zapisem (i nie wyświetlać ostrzeżenia jeśli plik który nakazano usunąć nie istnieje) można użyć przełącznika -f (--force).

Przypadkowo bądź nieprawidłowo użyte rm -rf … jest częstą przyczyną utraty danych. Szczególnie uważaj na wszystkie * i to do czego się rozwiną.

rm przyjmuje przełączniki -I i -i które proszą o potwierdzenie usunięcia plików. -I pyta raz przed rozpoczęciem usuwania wielu plików, a -i pyta przed usunięciem każdego pliku z osobna.

Zadanie 17 Stwórz wiele plików komendą touch file_{a..z}.
Usuń wszystkie te pliki jednym poleceniem rm:

  • bez przełączników,
  • z przełącznikiem -f,
  • z przełącznikiem -I,
  • z przełącznikiem -i.

Zadanie 18 Powtórz komendę usuwającą pliki z poprzedniego zadania po usunięciu plików.
Potem powtórz tą komendę raz jeszcze z przełącznikiem -f.

Zadanie 19 Stwórz katalog i usuń go używając rm.

so/files_basics.txt · ostatnio zmienione: 2023/03/12 22:40 przez jkonczak