Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
|
so:files_basics [2023/03/12 22:40] jkonczak |
so:files_basics [2026/03/12 01:02] (aktualna) jkonczak [Kopiowanie i przenoszenie plików] |
||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| ===== Kopiowanie, przenoszenie, i usuwanie plików ===== | ===== Kopiowanie, przenoszenie, i usuwanie plików ===== | ||
| - | <html><small></html> | + | |
| + | <small> | ||
| 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. | 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. | ||
| Linia 6: | Linia 7: | ||
| Aby wyświetlić plik, użyj ''cat //plik//''. | Aby wyświetlić plik, użyj ''cat //plik//''. | ||
| - | <html></small></html> | + | </small> |
| ==== Katalogi ==== | ==== Katalogi ==== | ||
| Linia 20: | Linia 21: | ||
| ~~Zadanie.#~~ Stwórz następujące drzewo katalogów: | ~~Zadanie.#~~ Stwórz następujące drzewo katalogów: | ||
| + | <html><pre style="margin-top:-1.2em; padding:0.25em 0.5em; line-height:100%"> | ||
| . | . | ||
| ├── foo | ├── foo | ||
| - | │ ├── baz | + | │ ├── bar |
| - | │ │ └── bar | + | │ │ └── baz |
| - | │ └── bar | + | │ └── baz |
| └── foobaz | └── foobaz | ||
| └── bar | └── bar | ||
| + | </pre></html> | ||
| - | ~~Zadanie.#~~ Usuń katalog ''foo/baz''. | + | ~~Zadanie.#~~ Usuń katalog ''foo/bar''. |
| + | |||
| + | ++++Przykłady|{{page>so:files_basics:examples#mkdir_rmdir&inline&noheader}}++++ | ||
| ==== Twarde i symboliczne dowiązania ==== | ==== Twarde i symboliczne dowiązania ==== | ||
| Linia 37: | Linia 42: | ||
| Wszystkie Linuksowe systemy [[https://en.wikipedia.org/wiki/Comparison_of_file_systems#File_capabilities|obsługują]] dowiązania twarde do zwykłych plików i symlinki do dowolnych ścieżek (np. pliku lub katalogu). | Wszystkie Linuksowe systemy [[https://en.wikipedia.org/wiki/Comparison_of_file_systems#File_capabilities|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ć twarde (zwykłe) łącze, można użyć **''ln //źródło// //cel//''**. |
| \\ | \\ | ||
| Aby utworzyć symlink, można użyć **''ln -s //źródło// //cel//''**. | Aby utworzyć symlink, można użyć **''ln -s //źródło// //cel//''**. | ||
| + | |||
| + | ++ Ilustracja dowiązań twardych i symbolicznych | | ||
| + | <html><object id="svg-object" data="/jkonczak/_media/so:files_basics:soft-_hard-_links_pl.svg" type="image/svg+xml"></object></html> | ||
| + | ++ | ||
| ~~Zadanie.#~~ Stwórz plik ''plik1'' z zawartością. Stwórz twarde dowiązanie do pliku ''plik1'' o nazwie ''plik2''. Zmodyfikuj ''plik2''. Wyświetl ''plik1''. | ~~Zadanie.#~~ Stwórz plik ''plik1'' z zawartością. Stwórz twarde dowiązanie do pliku ''plik1'' o nazwie ''plik2''. Zmodyfikuj ''plik2''. Wyświetl ''plik1''. | ||
| - | <html><small></html> | + | <small> |
| ~~Zadanie.#~~ Komenda ''ls'' może wyświetlić ilość twardych dowiązań. Sprawdź gdzie ta informacja jest wyświetlana. | ~~Zadanie.#~~ Komenda ''ls'' może wyświetlić ilość twardych dowiązań. Sprawdź gdzie ta informacja jest wyświetlana. | ||
| Linia 49: | Linia 58: | ||
| 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. | 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. | ||
| - | <html></small></html> | + | </small> |
| Linia 58: | Linia 67: | ||
| ~~Zadanie.#~~ Utwórz symlink do nieistniejącej ścieżki. Wyświetl zawartość katalogu w którym jest ten symlink. | ~~Zadanie.#~~ Utwórz symlink do nieistniejącej ścieżki. Wyświetl zawartość katalogu w którym jest ten symlink. | ||
| - | <html><small></html> | + | <small> |
| - | Polecenie ''readlink [-f] //cel//'' rozwiązuje wszystkie symlinki i wyświetla [[https://en.wikipedia.org/wiki/Canonicalization|kanoniczną]] postać ścieżki. | + | Polecenia ''readlink [-f] //cel//'' oraz ''realpath [-e] //cel//'' rozwiązują |
| + | wszystkie symlinki i wyświetlają | ||
| + | [[https://en.wikipedia.org/wiki/Canonicalization|kanoniczną]] postać ścieżki. | ||
| System plików Windows NTFS też obsługuje dowiązania. Tworzenie ich jest możliwe np. poleceniem [[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/mklink|mklink]]. | System plików Windows NTFS też obsługuje dowiązania. Tworzenie ich jest możliwe np. poleceniem [[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/mklink|mklink]]. | ||
| - | <html></small></html> | + | </small> |
| + | |||
| + | ++++Przykłady|{{page>so:files_basics:examples#ln&inline&noheader}}++++ | ||
| ==== Kopiowanie i przenoszenie plików ==== | ==== Kopiowanie i przenoszenie plików ==== | ||
| Linia 94: | Linia 107: | ||
| ~~Zadanie.#~~ 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.#~~ 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.#~~ Skopiuj rekurencyjnie ''someDir'' i zawartość. | + | ~~Zadanie.#~~ Skopiuj rekurencyjnie ''someDir'' (wymyślając nową nazwę dla kopii tego katalogu). |
| - | ~~Zadanie.#~~ Przenieś nowo utworzony katalog do środka katalogu ''someDir''. | + | ~~Zadanie.#~~ Przenieś katalog utworzony w poprzednim zadaniu do środka katalogu ''someDir''. |
| ~~Zadanie.#~~ Zmień nazwę katalogu ''someDir'' na inną. | ~~Zadanie.#~~ Zmień nazwę katalogu ''someDir'' na inną. | ||
| Linia 105: | Linia 118: | ||
| <html></small></html> | <html></small></html> | ||
| + | |||
| + | ++++Przykłady|{{page>so:files_basics:examples#cp_mv&inline&noheader}}++++ | ||
| ==== Kopiowanie plików do/z maszyny zdalnej ==== | ==== Kopiowanie plików do/z maszyny zdalnej ==== | ||
| Linia 112: | Linia 127: | ||
| ''scp'' przyjmuje przełącznik ''-r'' do rekursywnego kopiowania katalogów. | ''scp'' przyjmuje przełącznik ''-r'' do rekursywnego kopiowania katalogów. | ||
| - | <html><small></html> | + | <small> |
| MS Windows ma domyślnie komendę ''scp'', ale zwykle wygodniej jest korzystać z [[https://en.wikipedia.org/wiki/Comparison_of_FTP_client_software#Protocol_support|menadżerów plików]] wspierających SSH. | MS Windows ma domyślnie komendę ''scp'', ale zwykle wygodniej jest korzystać z [[https://en.wikipedia.org/wiki/Comparison_of_FTP_client_software#Protocol_support|menadżerów plików]] wspierających SSH. | ||
| - | <html></small></html> | + | </small> |
| Większość serwerów SSH wspiera też protokół SFTP, pozwalający na wygodniejsze kopiowanie plików.\\ | Większość serwerów SSH wspiera też protokół SFTP, pozwalający na wygodniejsze kopiowanie plików.\\ | ||
| Linia 123: | Linia 138: | ||
| ~~Zadanie.#~~ Stwórz plik w katalogu ''/tmp'' swojego komputera. Skopiuj go do katalogu domowego użytkownika ''student'' na innym komputerze. | ~~Zadanie.#~~ Stwórz plik w katalogu ''/tmp'' swojego komputera. Skopiuj go do katalogu domowego użytkownika ''student'' na innym komputerze. | ||
| - | ~~Zadanie.#~~ Skopiuj ten plik do katalogu ''/tmp'' innego komputera. | + | ~~Zadanie.#~~ Skopiuj ten plik do katalogu ''/tmp'' innego komputera używając ''scp''. |
| ~~Zadanie.#~~ Skopiuj ten plik do katalogu ''/tmp'' innego komputera używając ''sftp''. | ~~Zadanie.#~~ Skopiuj ten plik do katalogu ''/tmp'' innego komputera używając ''sftp''. | ||
| - | <html><small></html> | + | ++++Przykłady|{{page>so:files_basics:examples#scp_sftp&inline&noheader}}++++ |
| + | |||
| + | <small> | ||
| === Rsync === | === Rsync === | ||
| Program ''[[https://en.wikipedia.org/wiki/Rsync|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. | Program ''[[https://en.wikipedia.org/wiki/Rsync|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. | ||
| - | <html></small></html> | + | </small> |
| ==== Usuwanie plików ==== | ==== Usuwanie plików ==== | ||
| Linia 158: | Linia 176: | ||
| ~~Zadanie.#~~ Stwórz katalog i usuń go używając ''rm''. | ~~Zadanie.#~~ Stwórz katalog i usuń go używając ''rm''. | ||
| + | ++++Przykłady|{{page>so:files_basics:examples#rm&inline&noheader}}++++ | ||
| | | ||