В чем разница между ls >и ls >>? Мне нужно понять это для моих вычислений GCSE, но не знаю, в чем разница.
man bash).
В чем разница между ls >и ls >>? Мне нужно понять это для моих вычислений GCSE, но не знаю, в чем разница.
man bash).
Ответы:
>& >>являются операторами перенаправления; они передают вывод чего-либо, в этом случае ls, в другом месте. Если этот вывод идет в файл, >будет обрезать файл - т.е. удалить любой предыдущий контент, тогда как >>добавит новые данные в конец файла, сохраняя предыдущий контент. Это будет работать с любым вводом, поэтому echo& cat, например, также можно использовать таким образом.
Также интерес представляет |оператор, который передает данные в другое приложение - так ls | cat -nчто даст вам список с номером строки!
Трубы это соответствующий термин.
straceoutput for bash -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что создаст файл, если его не существует, и запишет в него данные. Если файл существует с некоторыми данными, то новые данные добавляются в его конец.
Если вы используете одиночный>, он перезапишет файл, если он уже существует. Будьте очень осторожны при использовании этого.
Если вы используете два >>, то он просто добавится (другими словами, начнет писать внизу файла), если он уже существует. В противном случае он создает новый файл, если он не существует.