Поиск по сайту:

Доброе — это прекрасное в действии (Ж.-Ж. Руссо).

Как обрезать (очистить) файлы в Linux2 мин для чтения

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
13 сентября 2019
Как обрезать (очистить) файлы в Linux
В некоторых ситуациях может потребоваться усечь (очистить) существующий файл до нулевой длины. Проще говоря, усечение файла означает удаление содержимого файла без удаления файла.

Усечение файла происходит намного быстрее и проще, чем удаление файла , его воссоздание и установка правильных прав доступа и владельца. Кроме того, если файл открывается процессом, удаление файла может вызвать сбой программы, которая его использует.

В этой статье объясняется, как обрезать файлы до нулевого размера в системах Linux с помощью перенаправления оболочки и команды truncate.

 

Самый простой и наиболее используемый метод для усечения файлов – это использование оператора перенаправления  > оболочки.

Общий формат для усечения файлов с использованием перенаправления:

: > filename

 

Давайте разберем команду:

  • : означает true и не производит никакого вывода.
  • Оператор перенаправления > перенаправляет вывод предыдущей команды в указанный файл.
  • filename, файл, который вы хотите усечь.

Если файл существует, он будет обрезан до нуля. В противном случае файл будет создан.

Вместо :можно также использовать другую команду, которая не выдает никаких результатов.

Вот пример использования catкоманды для вывода содержимого устройства /dev/null, которое возвращает только символ конца файла:

cat /dev/null > filename

 

Еще одна команда, которая может быть использована echo. Опция -n говорит echo не для добавления новой строки:

echo -n > filename

 

В большинстве современных оболочек, таких как Bash или Zsh, вы можете опустить команду перед символом перенаправления и использовать:

> filename

 

Чтобы иметь возможность усекать файл, вам необходимо иметь права на запись в файл. Обычно вы бы использовали sudoдля этого, но привилегии суперпользователя не применяются к перенаправлению. Вот пример:

sudo : > /var/log/syslog

 

bash: /var/log/syslog: Permission denied

 

Есть несколько решений, которые позволяют перенаправлять с sudo. Первый вариант может запустить новую оболочку с помощью sudo и выполнить команду внутри этой оболочки, используя флаг -c:

sudo sh -c '> filename'

 

Другой вариант – направить вывод в teeкоманду, повысить teeпривилегии sudoи записать пустой вывод в заданный файл:

: | sudo tee filename

 

Читать  Использование Curl для выполнения запросов REST API

truncate это утилита командной строки, которая позволяет уменьшить или расширить размер файла до заданного размера.

Общий синтаксис для усечения файлов до нулевого размера с помощью truncateкоманды, выглядит следующим образом:

truncate -s 0 filename

 

Параметр -s 0 задает размер файла до нуля.

Например, чтобы очистить журнал доступа Nginx, вы должны использовать:

sudo truncate -s 0 /var/log/nginx/access.log

 

Со временем ваш диск может загромождаться большим количеством больших файлов журнала, занимающих много места на диске.

Следующая команда очистит файлы, заканчивающиеся на «.log» в каталоге /var/log:

sudo truncate -s 0 /var/log/**/*.log

 

Лучшим вариантом будет вращение, сжатие и удаление файлов журналов с помощью инструмента logrotate.

 

Чтобы обрезать файл в Linux, используйте оператор перенаправления >, за которым следует имя файла.

Если у вас есть какие-либо вопросы или замечания, пожалуйста, оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close