В этой статье вы узнаете, как обрезать файл журнала и удалять его содержимое, не удаляя сам файл.
Вы окажетесь в ситуациях, когда вам нужно очистить файл. Это часто случается, когда у вас огромные файлы журналов, и как бы вы это сделали?
Один не очень чистый способ — удалить файл, а затем создать новый файл. Но это не очень хорошая идея. Это не будет тот же файл, временная метка (atime, mtime и т. д.). Будет отличаться вместе с другими правами доступа к файлам.
Вместо создания нового пустого файла вы можете удалить его содержимое. Итак, как вы очищаете файл в Linux? Как очистить файл от всего его содержимого без удаления самого файла?
Существует несколько способов очистки файла без его фактического удаления. Позвольте нам показать вам некоторые из этих методов.
Самый безопасный способ обрезать файл журнала — использовать команду truncate.
truncate -s 0 filename
В приведенной выше команде -s используется для установки/настройки размера (в байтах) файла. Когда вы используете -s 0, это означает, что вы изменили размер файла до 0 байт.
Самый простой способ очистить файл — использовать команду ниже. Если файл не используется, он будет работать в Bash:
> filename
Хотя вышеперечисленное работает только в Bash Shell, вы можете использовать аналогичную команду для других оболочек:
:> filename
Вы также можете использовать эту команду для очистки файла:
true > filename
Другой способ очистить файл — использовать команду echo в Linux:
echo > filename
Вы также можете использовать команду echo следующим образом:
echo "" > filename
Вы также можете использовать знаменитую /dev/null и объединить ее с командой cat для очистки файла журнала:
cat /dev/null > file.log
В конце…
И если у вас недостаточно прав для какой-либо из вышеперечисленных команд, это верный выстрел, но немного грязный способ добиться этого:
touch newfile mv newfile filename
Мы надеемся, что этот быстрый совет помог вам очистить файл в Linux. Добавьте нас в закладки для получения дополнительных советов по Linux.
20 лет в консоле, до сих пор не знал, что можно «> filename», из ниоткуда, хотя да, приглашении — стандартный вывод, «>» или «:>», конечно должны работать, спасибо!
в линукс пельзовался всегда эхом, но эхо записывает пустую строку в начало, freebsd — truncate конечно же)