KWALIFIKACJA INF2 - CZERWIEC 2024 (test 3)

PYTANIE NR 35.
W systemie Linux, aby dopisać do pliku test.txt, bez utraty wcześniej zapisanych w nim danych, rezultat wykonania polecenia dir, należy użyć następującej składni
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Operator >> przekierowuje standardowe wyjście polecenia i dopisuje je na końcu istniejącego pliku, nie usuwając wcześniejszej treści.
W tej sytuacji wynik "dir /etc" ma zostać dopisany do test.txt, więc poprawna jest składnia z >>. Znak > nadpisuje plik, a < i << dotyczą wejścia.

Pełne wyjaśnienie:

W powłokach Unix/Linux (np. bash) wynik działania programu trafia domyślnie na standardowe wyjście (stdout). Można go zapisać do pliku za pomocą operatorów przekierowania.

Dlaczego poprawne jest "dir /etc >> test.txt"?
Operator >> oznacza dopisywanie (append): jeżeli plik test.txt już istnieje, nowe linie zostaną dodane na jego końcu, a wcześniejsza zawartość pozostanie bez zmian. To dokładnie odpowiada warunkowi "bez utraty wcześniej zapisanych danych".

Dlaczego pozostałe składnie są błędne?

  • "dir /etc < test.txt" używa <, czyli przekierowania wejścia (stdin) z pliku do programu. Nie służy do dopisywania wyniku polecenia do pliku.
  • "dir /etc > test.txt" używa >, które zapisuje stdout do pliku, ale nadpisuje go (kasuje poprzednią zawartość i tworzy nową). To powodowałoby utratę danych.
  • "dir /etc << test.txt" używa << (here-document). To mechanizm podawania wieloliniowego tekstu jako wejścia, a nie dopisywania wyniku polecenia do pliku.

Uwaga praktyczna: w Linuksie częściej spotyka się polecenie "ls", ale "dir" jest dostępne w GNU coreutils i również wypisuje listę plików. Kluczowe w tym zadaniu jest rozpoznanie działania operatora >>.

Wskazówka egzaminacyjna: gdy w treści pojawia się "dopisać" lub "bez utraty danych", najczęściej szukasz >>. Gdy jest "zapisać (zastąpić)", wtedy rozważasz >.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator >> przekierowuje standardowe wyjście polecenia do pliku w trybie dopisywania. Jeśli plik istnieje, nowa treść zostaje dodana na końcu, a wcześniejsze dane nie są kasowane. Jeśli plik nie istnieje, zostanie utworzony.
> zapisuje wynik do pliku, ale zwykle nadpisuje jego zawartość (ryzyko utraty danych). >> zapisuje wynik przez dopisanie na końcu pliku. Na egzaminie słowo "dopisać" prawie zawsze wskazuje na >>.
Bo przekierowanie > otwiera plik do zapisu w trybie nadpisania. W praktyce poprzednia zawartość jest zastępowana nową (często plik jest najpierw "wyzerowany"). Dlatego do zbierania wyników wielu poleceń w jednym pliku bezpieczniejsze jest >>.
Znak < przekierowuje wejście (stdin) programu z pliku. To znaczy, że program czyta dane z pliku tak, jakby były wpisywane z klawiatury. Nie służy do zapisywania wyniku polecenia do pliku, tylko do dostarczania danych wejściowych.
<< (here-document) to sposób przekazania programu wieloliniowego tekstu jako wejścia, zwykle w skryptach. Po << podaje się znacznik końca, a następnie wpisuje treść aż do tego znacznika. To nie jest dopisywanie wyniku do pliku, tylko zasilanie programu danymi.
W wielu dystrybucjach tak, ponieważ dir jest narzędziem z pakietu GNU coreutils i wypisuje zawartość katalogu (podobnie do ls). W praktyce administratorzy częściej używają ls, ale w zadaniach liczy się głównie zrozumienie przekierowań.
Najprościej użyć przekierowania >>, np. polecenie >> plik.txt. Dzięki temu każdy kolejny przebieg skryptu dopisze nowe dane zamiast kasować stare. To typowy sposób budowania raportu lub prostego logu w pliku tekstowym.
W bash można przekierować oba strumienie. Częsty zapis to polecenie >> plik.txt 2>&1, gdzie 2>&1 dołącza stderr do stdout. Na egzaminie warto pamiętać, że sam operator >> dotyczy tylko standardowego wyjścia (stdout).
Możesz wykonać dwa różne polecenia z >> do tego samego pliku i potem wyświetlić plik, np. cat plik.txt. Jeśli widzisz oba wyniki jeden pod drugim, oznacza to dopisanie. Gdyby użyć >, drugi zapis usunąłby pierwszy.
Najczęstsze pomyłki to: użycie > zamiast >> (utrata danych), mylenie < z zapisem do pliku (to wejście), oraz traktowanie << jak dopisywania (to here-document). Pomaga czytanie polecenia "kierunek strumienia".
info

To pytanie poprawnie rozwiązuje 58% zdających egzamin. średnie

Specjaliści zwracają uwagę: "Znak &gt; nadpisuje plik, a &lt; i &lt;&lt; dotyczą wejścia."

Źródła:

  • GNU Coreutils Manual: "dir invocation" (GNU Coreutils documentation) https://www.gnu.org/software/coreutils/manual/coreutils.html#dir-invocation - accessed 2026-02-27
  • GNU Bash Reference Manual: "Redirections" https://www.gnu.org/software/bash/manual/bash.html#Redirections - accessed 2026-02-27
  • The Open Group Base Specifications Issue 7, POSIX.1-2017: "Shell Command Language — Redirection" https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07 - accessed 2026-02-27

Materiały:

  • Dokumentacja bash: sekcja o I/O Redirection
  • Podręcznik GNU coreutils dla poleceń listujących katalogi (dir/ls)
  • Kurs administracji Linux: podstawy powłoki i strumieni (stdin/stdout/stderr)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego