Jak o:
echo "hello" >> <filename>
pomocą operatora >>
dołączy dane na końcu pliku, natomiast za pomocą >
nadpisuje zawartość pliku, jeśli już istniejących.
Można również użyć printf
w ten sam sposób:
printf "hello" >> <filename>
Należy pamiętać, że może to być niebezpieczne w użyciu wyżej. Na przykład, jeśli masz już plik i musisz dodać dane na końcu pliku i zapomnisz dodać ostatnie >
wszystkie dane w pliku zostaną zniszczone. Można to zmienić poprzez ustawienie zmiennej noclobber
w swojej .bashrc
:
set -o noclobber
Teraz podczas próby zrobić echo "hello" > file.txt
dostaniesz ostrzeżenie mówiąc cannot overwrite existing file
.
Aby wymusić zapis do pliku należy teraz użyć specjalnej składni:
echo "hello" >| <filename>
Warto również wiedzieć, że domyślnie echo
dodaje spływu new-line charakter, który można stłumić stosując flagę -n
:
echo -n "hello" >> <filename>
Odniesienia
@JonKiparsky: Przepraszam, nie widziałem, żeby było napisane w twojej odpowiedzi ... –
Jak mogę to zrobić, gdy plik wymaga uprawnień roota? – UselesssCat