В чем разница между ls >
и ls >>
? Мне нужно понять это для моих вычислений GCSE, но не знаю, в чем разница.
command-line
Хелен Шофилд
источник
источник
man bash
).Ответы:
>
&>>
являются операторами перенаправления; они передают вывод чего-либо, в этом случаеls
, в другом месте. Если этот вывод идет в файл,>
будет обрезать файл - т.е. удалить любой предыдущий контент, тогда как>>
добавит новые данные в конец файла, сохраняя предыдущий контент. Это будет работать с любым вводом, поэтомуecho
&cat
, например, также можно использовать таким образом.Также интерес представляет
|
оператор, который передает данные в другое приложение - такls | cat -n
что даст вам список с номером строки!Трубы это соответствующий термин.
источник
strace
output forbash -c 'echo a > blah'
:,open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)
так что truncate будет правильным термином.>>
для записи в файл (например: журнал) также имеет приятную сторону эффект отсутствия символов «Nul» появляется в начале файла saif, если файл обрезан, а процесс все еще записывает в него! (например: во время ротации файла журнала). Поскольку «foo> file» не ищет, он не замечает изменения размера и все еще указывает дальше, чем начало, и ОС заполняется Nul.foo >>file
ищет и, следовательно, указывает на новую позицию (начало).Символы
>
и>>
используются для перенаправления вывода в файл.Оба создадут файл, если файл не существует. Если файл уже существует, то
>
файл будет перезаписан, где as>>
добавит данные в файл.Так
ls > myfile
создаст документ с именем,myfile
если он не существует. Еслиmyfile
он уже существует и содержит некоторые данные, он будет перезаписан новыми данными, которые вы передаете.Принимая во внимание,
ls >> myfile
что создаст файл, если его не существует, и запишет в него данные. Если файл существует с некоторыми данными, то новые данные добавляются в его конец.источник
Если вы используете одиночный>, он перезапишет файл, если он уже существует. Будьте очень осторожны при использовании этого.
Если вы используете два >>, то он просто добавится (другими словами, начнет писать внизу файла), если он уже существует. В противном случае он создает новый файл, если он не существует.
источник