Настя и сборник весёлых историй
Оглавление:
В некоторых ситуациях может потребоваться усечь (очистить) существующий файл до нулевой длины. Проще говоря, усечение файла означает удаление содержимого файла без удаления файла.
Усечение файла происходит намного быстрее и проще, чем удаление файла, его воссоздание и установка правильных прав доступа и владельца. Кроме того, если файл открывается процессом, удаление файла может вызвать сбой программы, которая его использует.
В этом руководстве объясняется, как обрезать файлы до нулевого размера в системах 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
и записать пустой вывод в заданный файл:
команда
truncate
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, используйте оператор перенаправления
>
а затем имя файла.
Как создавать пустые имена папок в Windows 10/8/7
Отображать папки без имени! Узнайте, как создавать, отображать или создавать пустые или пустые имена папок в Windows 10/8/7, используя этот трюк.
Как исправить пустые карты Google на Android и Chrome
Пустые Карты Google на вашем Android или Google Chrome? Попробуйте эти исправления, чтобы улучшить навигацию и поиск местоположения.
Как исправить пустые иконки в Windows 10 на рабочем столе
Вы видите отсутствующие или пустые значки на рабочем столе Windows 10? Вот 8 способов исправить эту ошибку, чтобы вы могли быстро идентифицировать файлы, папки и приложения.







