Как очистить файл в Linux
Быстрая очистка содержимого файла (его обнуление) — часто встречающаяся задача для любого программиста, владеющего начальными навыками пользования консоли Linux.
Мои способы
Будьте внимательны и осторожны, так как некторые методы, приведенные в данном посте, требуют расширенных прав пользовтеля или установленных утилит в вашей системе.
Способ 1
Самый простой способ — это использование перенаправление вывода с использованием >
:
> filename
Способ 2
Способ аналогичен предыдущему, но с использованием утилиты echo
. Параметр -n
запрещает выводить перевод строки (символ новой строки):
echo -n > filename
Способ 3
Магический файл /dev/null
— это своего рода Бермудский треугольник вашего компьютера, все, что туда попадает, пропадает бесследно.
cat /dev/null > filename
Если при использовании данного варианта вы получили сообщение об ошибке File already exists
, можно использовать опцию noclobber
:
cat /dev/null >| filename
Способ 4
Суть его заключается в копировании магического файла в очищаемый вами:
cp /dev/null filename
Способ 5
Можно также использовать утилиту truncate
, которая уменьшаяет или увеличивает размер файла:
truncate -s 0 filename
Способ 6
Есть возможность комбинировать методы. Например, используя утилиту tee
, которая считывает данные из стандартного устройства ввода и записывает их на стандартное устройство вывода или в файл:
echo -n | tee $@
Комментарии приветствуются.
Мне понравился метод cat /dev/null >| filename
Пользуйтесь!
Первый способ самый короткий!
Берите какой вам ближе
Вы спасли мне жизнь 🙂 спасибо, использовался метод с truncate
Пожалуйста!
truncate (способ 5) мне помог, спасибо.
Можно указать в статье, что truncate подходит для очистки множества файлов.
Пример: truncate -s 0 $(ls -1 *.txt)
А что, обычными способами без терминала текстовый документ не очистился?
А откуда на сервере возьмётся обычный способ, если там даже GUI нет, например? Или какой смысл открывать файл в редакторе, выделять весь текст, удалять текст, сохранять и закрывать редактор, когда это делается в одну строку.