
V Bash existuje několik způsobů, jak připojit text k souboru. Tento článek vysvětluje některé z nich.
Chcete-li k souboru připojit text, musíte mít do něj oprávnění k zápisu. V opačném případě se zobrazí chyba oprávnění odepřeno.
Přidat k souboru pomocí operátora přesměrování (>>
) #
Přesměrování vám umožňuje zachytit výstup z příkazu a odeslat jej jako vstup do jiného příkazu nebo souboru. >>
Operátor přesměrování připojí výstup k danému souboru.
Existuje řada příkazů, které můžete použít k tisku textu na standardní výstup a jeho přesměrování do souboru pomocí echo
a printf
jsou nejpoužívanější.
Chcete-li k souboru připojit text, zadejte název souboru za operátorem přesměrování:
echo "this is a new line" >> file.txt
Při použití s -e
možnost echo
příkaz interpretuje znaky s escapováním zpětného lomítka, jako je nový řádek \n
:
echo -e "this is a new line \nthis is another new line" >> file.txt
Chcete-li vytvořit složitější výstup, použijte printf
příkaz, který umožňuje určit formátování výstupu:
printf "Hello, I'm %s.\n" $USER >> file.txt
Dalším způsobem, jak připojit text k souboru, je použít dokument Here (Heredoc). Je to typ přesměrování, který vám umožňuje předat příkazu více řádků vstupu.
Obsah můžete například předat cat
příkaz a připojte jej k souboru:
cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as: $(whoami)
EOF
Výstup libovolného příkazu můžete připojit k souboru. Zde je příklad s date
příkaz:
date +"Year: %Y, Month: %m, Day: %d" >> file.txt
Při přidávání k souboru pomocí přesměrování dávejte pozor, abyste nepoužili >
operátor přepíše důležitý existující soubor.
Připojit k souboru pomocí tee
Příkaz #
tee
je nástroj příkazového řádku v Linuxu, který čte ze standardního vstupu a zapisuje na standardní výstup a jeden nebo více souborů současně.
Ve výchozím nastavení tee
příkaz přepíše zadaný soubor. K připojení výstupu k souboru použijte tee
pomocí -a
(--append
) možnost:
echo "this is a new line" | tee -a file.txt
Pokud nechcete tee
pro zápis na standardní výstup jej přesměrujte na /dev/null
:
echo "this is a new line" | tee -a file.txt >/dev/null
Výhoda použití tee
příkaz přes >>
operátor je to tee
umožňuje připojit text k více souborům najednou a zapisovat do souborů vlastněných jinými uživateli ve spojení s sudo
.
Chcete-li přidat text k souboru, do kterého nemáte oprávnění k zápisu, přidejte před sudo
před tee
jak je uvedeno níže:
echo "this is a new line" | sudo tee -a file.txt
tee
přijímá výstup echo
příkaz, zvýší oprávnění sudo a zapíše do souboru.
Chcete-li připojit text k více než jednomu souboru, zadejte soubory jako argumenty do tee
příkaz:
echo "this is a new line" | tee -a file1.txt file2.txt file3.txt
Závěr č.
V Linuxu k připojení textu k souboru použijte >>
operátor přesměrování nebo tee
příkaz.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.