Jak dołączyć wynik do pliku?


125

Jak mogę zrobić coś takiego command > file, aby dołączyć do pliku, zamiast nadpisywać?


1
(Jest wiele, wiele - być może zdecydowanie za dużo! - dodatków w podręczniku basha, w tym wszelkiego rodzaju przekierowania. Dostosuj w razie potrzeby do powłoki.)

4
Możesz także użyć tee, jeśli chcesz przekierować do obu STDOUT i dołączyć wyniki do pliku. Na przykład: echo "witaj" | tee -a somefile.txt, gdzie flaga -a oznacza dopisywanie.
Henrik,

Odpowiedzi:



103

Tak.

command >> fileprzekierować tylko standardowe wyjście z command.

command >> file 2>&1przekierować stdout i stderr do pliku (działa w bash, zsh)

A jeśli potrzebujesz użyć sudo, pamiętaj o tym

sudo command >> /file/requiring/sudo/privilegesnie działa, ponieważ podniesienie uprawnień dotyczy, commandale nie części przekierowania powłoki. Jednak samo użycie teerozwiązuje problem:

command | sudo tee -a /file/requiring/sudo/privileges


6
Używam tego do przechwytywania wszystkich danych wyjściowych program.sh 2> & 1 | tee -a screen.log. „-a” oznacza dołączanie.
Xdg,

-3

do pliku można dołączyć znak >>. Wstawia zawartość na końcu pliku, którego używamy.eg jeśli plik ma nazwę myfile zawiera xyz then cat >> myfile abc ctrl d

po powyższym procesie myfile zawiera xyzabc.


4
O >>operatorze wspomniano już trzy lata wcześniej, a PO wie, co oznacza dołączenie.
Dan Dascalescu
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.