Поиск по сайту:
Если собираетесь кого-нибудь полюбить, научитесь сначала прощать (А.В. Вампилов).

Как обрезать (очистить) файлы в Linux

13.09.2019
Как обрезать (очистить) файлы в Linux

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

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

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

 

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

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

: > filename

 

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

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

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

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

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

cat /dev/null > filename

 

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

echo -n > filename

 

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

> filename

 

Читать  Пример Laravel Eloquent firstOrCreate

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

sudo : > /var/log/syslog

 

bash: /var/log/syslog: Permission denied

 

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

sudo sh -c '> filename'

 

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

: | sudo tee filename

 

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, используйте оператор перенаправления >, за которым следует имя файла.

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

Читать  Команда Uniq в Linux с примерами

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 3,50 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Дифференциальное уравнение в частных производных (PDE) - это дифференциальное уравнение,…

Спасибо!

Теперь редакторы в курсе.