Jaka jest różnica między ls >
i ls >>
? Muszę to zrozumieć dla moich obliczeń GCSE, ale nie wiem, jaka jest różnica.
command-line
Helen Schofield
źródło
źródło
man bash
).Odpowiedzi:
>
i>>
są operatorami przekierowań; przenoszą produkcję czegoś, w tym przypadkuls
gdzie indziej. Jeśli dane wyjściowe>
trafią do pliku, zostanie obcięty - tzn. Usunie wszelkie poprzednie treści, a jednocześnie>>
doda nowe dane na końcu pliku, zachowując poprzednią zawartość. Będzie to działać z dowolnym wejściem, więcecho
&cat
na przykład można również użyć w ten sposób.Interesujący jest również
|
operator, który przekazuje dane do innej aplikacji - dziękils | cat -n
temu otrzymasz listę z numerami wierszy!Rury to odpowiedni termin.
źródło
strace
wyjściem dobash -c 'echo a > blah'
:open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)
tak truncate byłby odpowiedni termin.>>
do zapisu do pliku (np. log) również ma fajną stronę efekt, aby na początku pliku saif nie pojawiały się znaki „Nul”, jeśli plik jest obcinany, gdy proces wciąż do niego zapisuje! (np .: podczas rotacji pliku dziennika). Ponieważ „foo> file” nie szuka, nie zauważa zmiany rozmiaru i nadal wskazuje dalej niż na początku, a system operacyjny wypełnia się wartością Nul.foo >>file
szuka, a zatem wskazuje na nową pozycję (początek).Symbole
>
i>>
służą do przekierowania wyjścia do pliku.Oba utworzą plik, jeśli plik nie istnieje. Jeśli plik już istnieje, to
>
nadpisze plik, do którego>>
dołączą dane.Więc
ls > myfile
będzie stworzyć dokument o nazwiemyfile
, jeśli nie istnieje. Jeślimyfile
jest już obecny i zawiera pewne dane, zostanie nadpisany nowymi danymi, które przekażesz.Natomiast
ls >> myfile
utworzy plik, jeśli nie istnieje, i zapisze w nim dane. Jeśli plik istnieje z pewnymi danymi, nowe dane są dodawane na końcu.źródło
JEŻELI użyjesz jednego>, plik zostanie zastąpiony, jeśli już istnieje. Zachowaj ostrożność podczas korzystania z tego.
Jeśli użyjesz dwóch >>, to po prostu dołączy (innymi słowy, zacznij pisać na dole pliku), jeśli już istnieje. W przeciwnym razie tworzy nowy plik, jeśli nie istnieje.
źródło