Jak dołączyć wynik do pliku?

125

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

Tom Brito
źródło
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:

212

Użyj, >>aby dołączyć:

command >> file
Mike Lewis
źródło
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

EdvardM
źródło
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.

user3680358
źródło
4
O >>operatorze wspomniano już trzy lata wcześniej, a PO wie, co oznacza dołączenie.
Dan Dascalescu