Używam, | sudo tee FILENAME
aby móc pisać lub dołączać do pliku, dla którego dość często wymagane są uprawnienia administratora.
Chociaż rozumiem, dlaczego jest to pomocne w niektórych sytuacjach, które tee
również wysyłają swój wkład do STDOUT, nigdy tak naprawdę nigdy nie użyłem tej części tee
do niczego użytecznego. W większości sytuacji ta funkcja powoduje, że mój ekran jest wypełniony niechcianymi drganiami, jeśli nie przejdę dodatkowego kroku i nie wyciszę go ręcznie tee 1> /dev/null
.
Moje pytanie: Czy istnieje arround komenda, która robi dokładnie to samo, tee
ale nie ma o niczym domyślnie wyjścia na standardowe wyjście?
linux
command-line
posix
tee
aef
źródło
źródło
tee
sięcat >filename
, czy można uzyskać wyniki, które chcesz?cat
sam nie pisze do plików. A>
operator nie działa, ponieważ pliki nie są zapisywane przez mojego bieżącego użytkownika. Więc nie, to trochę nie pomaga. I proszę, przestań całkowicie zmieniać znaczenie komentarza co 2 sekundy. Zamiast tego stwórz nowy.| sudo tee FILENAME
się| sudo cat >filename
, czy można uzyskać wyniki, które chcesz?>
operator używa bieżącego użytkownika powłoki do zapisu do pliku. Ten użytkownik nie ma niezbędnych uprawnień.cat
jest do tego całkowicie bezużyteczny.Odpowiedzi:
Inną opcją, która pozwala uniknąć przesyłania potoku z powrotem, a następnie do
/dev/zero
jestźródło
oflag=append conv=notrunc
opcje dodd
dołączania.dd
Rozwiązanie nadal drukuje śmieci do stdout:Można tego uniknąć za pomocą
status
opcji:Kolejna interesująca możliwość (w każdym razie dla Linuksa):
Aby skopiować dane wejściowe TTY do pliku, często robię to:
Szkoda, że koszulka nie ma opcji tłumienia stdout.
źródło
Możesz użyć skryptu. Czyli umieścić coś takiego w IE
$HOME/bin/stee
,0tee
lub podobne:Uczyń go wykonalnym:
Teraz wykonaj np .:
źródło
Możesz zawinąć całe polecenie w sudo, więc sama powłoka, jak również przekierowania, są wykonywane jako
root
:źródło
Nie ma bezpośrednio takiego programu (jest to właściwie jedyny raz, kiedy byłby użyteczny), ale możesz łatwo napisać własny. Jeśli nie chcą programu, można także napisać prosty skrypt, który robi to samo:
cat > $1
. Różni się to od umieszczania go w linii (jak sugerowano trociny), ponieważ sudo będzie dotyczyło całego skryptu, w tym przekierowania.źródło
Wiem, że jest trochę za późno, ale to, co robię w takich przypadkach (gdy potrzebny jest „płaski” standard, ale także plik tymczasowy) to:
źródło
/dev/null
i nie powoduje skrócenia polecenia. Jaka byłaby zaleta korzystania z tego zamiast oryginalnej metody?