warlinx
@warlinx

Как очистить большой файл в Linux?

Какие могут быть возможные варианты очистки огромного файла в Линукс, допустим там несколько ГБ накопилось данных? Доступим, это лог или еще что-то.
Без пересоздания
Без удаления самого файла
  • Вопрос задан
  • 171 просмотр
Решения вопроса 3
caramingo
@caramingo
Если кто то пишет в этот файл и мне нужно его очистить обычно делаю так
> /путь/logfile.log
Если что эта команда сотрет ВСЕ в файле!
Ответ написан
Выше Dmitriy Loginov правильно дал команду, но чуть добавлю свои 5 копеек, т.к. такой вариант считается более кашерным:

sudo bash -c '>/путь/logfile.log'

или с двойными кавычками, что иногда необходимо в скриптах или комбинациях команд:

sudo bash -c ">/путь/logfile.log"

Чистит до нуля файл любого размера и любого расширения...
Например файл видоса:

sudo bash -c '>/путь/vidos.avi'
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Можно вот так почистить с сохранением последних 100 строк:
LOG=$(tail -n100 file) && echo "$LOG">file

а так по сути любое перенаправление ">" перезапишет содержимое файла не меняя его inode.
echo "" > file

Из команд -
truncate -s BYTES file
но оно обнуляет с начала файла, то есть -s 0 имеет смысл, остальные размеры обычно не имеют смысла для лог файлов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы