В чем разница между операторами перенаправления > и >> в Linux?

«В чем разница между операторами перенаправления > и >> в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Оба оператора перенаправляют стандартный вывод (stdout) команды в файл, но по-разному:

  • > (перенаправление с перезаписью) — создает новый файл или полностью перезаписывает содержимое существующего файла.
  • >> (перенаправление с добавлением) — создает новый файл или добавляет вывод в конец существующего файла, сохраняя его предыдущее содержимое.

Примеры:

# 1. Создание/перезапись файла
$ echo "Первая строка" > log.txt
$ cat log.txt
Первая строка

# 2. Добавление строки в конец файла
$ echo "Вторая строка" >> log.txt
$ cat log.txt
Первая строка
Вторая строка

# 3. Опасность перезаписи: содержимое file.txt будет безвозвратно утеряно
$ ls -la > file.txt

Практическое применение в DevOps:

  • > используется для инициализации файлов конфигурации или записи однократного вывода (например, версии пакета).
  • >> критически важен для логирования, чтобы последовательно добавлять записи в лог-файлы скриптов или приложений, не теряя историю.