- 5 способов очистить или удалить содержимое большого файла в Linux
- 1. Очистить содержимое файла путем перенаправления на Null
- 2. Пустой файл с использованием перенаправления команды true
- 3. Пустой файл Использование утилит cat/cp/dd с/dev/null
- 4. Очистить файл с помощью команды echo
- 5. Очистить файл с помощью команды усечения
- compizomania
- Страницы
- 08 июля 2021
- Очистка содержимого файла (ов) с любым расширением до нуля байт в Терминале в Linux
- Как очистить (усечь) файлы журнала в Linux
- Как очистить (усечь) файлы журнала в Linux
- Пустой файл журнала с помощью команды truncate
- Пустой файл журнала, используя:> или true>
- Пустой файл журнала с помощью команды echo
- Пустой файл журнала с помощью команды dd
- Как обрезать файлы до нулевого размера в Linux
- How to Truncate (Empty) Files in Linux
- В этом руководстве объясняется, как обрезать файлы до нулевого размера в системах Linux с помощью перенаправления оболочки и truncate команды.
- Shell Redirection
- truncate команда
- Очистить все файлы журнала
- Вывод
5 способов очистить или удалить содержимое большого файла в Linux
Иногда, работая с файлами в терминале Linux, вы можете захотеть очистить содержимое файла, не открывая его обязательно с помощью редакторов командной строки Linux. Как этого добиться? В этой статье мы рассмотрим несколько различных способов очистки содержимого файла с помощью некоторых полезных команд.
Внимание : прежде чем мы перейдем к рассмотрению различными способами, обратите внимание, что, поскольку в Linux все является файлом, вы всегда должны убедиться, что файл (ы), который вы очищаете, не являются важными пользовательскими или системными файлами. Очистка содержимого критически важной системы или файла конфигурации может привести к фатальной ошибке или сбою приложения/системы.
С учетом сказанного ниже приведены способы очистки содержимого файла из командной строки.
Важно : для целей этой статьи мы использовали файл access.log в следующих примерах.
1. Очистить содержимое файла путем перенаправления на Null
Самый простой способ очистить содержимое файла с помощью перенаправления оболочки null (несуществующий объект) в файл, как показано ниже :
Пустой большой файл с использованием Null Перенаправление в Linux
2. Пустой файл с использованием перенаправления команды true
Здесь мы будем использовать символ : — это встроенная команда оболочки, которая по сути эквивалентна команде true и может использоваться как безоперационная (без операции).
Другой Метод заключается в перенаправлении вывода встроенной команды : или true в файл следующим образом:
Очистить большой файл с помощью команд Linux
3. Пустой файл Использование утилит cat/cp/dd с/dev/null
В Linux устройство null в основном используется для отбрасывания нежелательных выходных потоков процесса , или как подходящий пустой файл для входных потоков. Обычно это выполняется с помощью механизма перенаправления.
Поэтому файл устройства /dev/null является специальным файлом, который записывает (удаляет) любой ввод, отправленный на он или его вывод такие же, как и у пустого файла.
Кроме того, вы можете очистить содержимое файла, перенаправив на него вывод /dev/null (файл) в качестве ввода с помощью команды cat:
Очистить файл с помощью команды cat
Затем мы будем использовать команду cp для очистки содержимого файла, как показано.
Очистить содержимое файла с помощью команды cp
В следующей команде if означает входной файл, а of относится к выходному файлу.
Очистить содержимое файла с помощью команды dd
4. Очистить файл с помощью команды echo
Здесь вы можете использовать команду echo с пустой строкой и перенаправить ее в файл следующим образом:
Очистить файл с помощью команды echo
Примечание . Помните, что пустая строка не то же самое, что и null. Строка уже является объектом, поскольку она может быть пустой, тогда как null просто означает отсутствие объекта.
По этой причине, когда вы перенаправляете команду out of echo выше в файл, и просмотрите содержимое файла с помощью команды cat, он печатает пустую строку (пустую строку).
Чтобы отправить нулевой вывод в файл, используйте флаг -n , который сообщает echo не выводить завершающую новую строку, которая ведет к пустой строке, созданной в предыдущей команде.
Пустой файл с нулевым перенаправлением
5. Очистить файл с помощью команды усечения
Команда truncate помогает уменьшить или увеличить размер файла до определенного размера.
Вы можете использовать его с параметром -s , который указывает размер файла. Чтобы очистить содержимое файла, используйте размер 0 (ноль), как в следующей команде:
Обрезать содержимое файла в Linux
На этом пока что, в этой статье мы рассмотрели несколько методов очистки или опустошения содержимого файла. с помощью простых утилит командной строки и механизма перенаправления оболочки.
Вероятно, это не единственные доступные практические способы сделать это, поэтому вы также можете сообщить нам о любых других методах, не упомянутых в этом руководстве, через отзывы раздел ниже.
Есть ли способ очистить половину файла вместо полной очистки?
Предположим, мне нужен файл с последним 10 дней журналов и возможность удаления/очистки старше 10 дней (я не хочу архивировать этот файл и заменять новый файл для свежих журналов), могу ли я очистить половину файла в файле?
Должен быть способ, но мы должны провести небольшое исследование по этому поводу, прежде чем мы сможем предложить вам решение.
Уважаемые, у меня есть файл журнала, в котором у меня есть журналы за 3 месяца, как я могу просто сохранить журнал за последние 30 дней и остаток для удаления. Как это сделать?
Как указать это условие, если размер файла журнала увеличивается на 2 ГБ, а затем очищаются данные месячной давности ..
Вам нужно будет сделать это через задание cron. ты знаком с cron? Вы должны написать сценарий, сохранить его где-нибудь, а затем запустить его через cron.
Сценарий должен обрабатывать логику разбора файла на строки, анализировать дату в каждой строке, а затем отбросьте строки с датой старше 30 дней.
Как удалить содержимое (файлы и каталоги) в одной папке за один раз.
Источник
compizomania
Азбука в Linux для начинающих и не только. Я знаю только то, что ничего не знаю, но другие не знают и этого. Сократ
Страницы
08 июля 2021
Очистка содержимого файла (ов) с любым расширением до нуля байт в Терминале в Linux
Есть конечно графические утилиты, такие например, как BleachBit и др., но, всё же, все эти утилиты радикально удаляют файлы с носителя, а это в свою очередь огромная нагрузка на ФС, особенно носителей SSD.
Поэтому мы с вами и рассмотрим один из способов такой, щадящей чистки, без радикального удаления файла (ов) из системы до нуля байт.
Например, у нас в папке Видео есть не нужный нам более видео-файл test.mkv размером 8.6 Гб и мы с вами попробуем его не удалить, а очистить до нуля байт.
Для выполнения такой очистки нам с вами понадобится Терминал, вызвать который можно на клавиатуре сочетанием клавиш клавиатуры Ctrl+Alt+T, что мы с вами и делаем и после его открытия, для начала, убедимся, что файл такой есть и он действительно размером 8.6 Гб.
Проверяем наличие данного файла и его размер, введя следующую команду/код и жмём на Enter:
ls -lh Видео/t*t.mkv
(почему в команде/коде файл прописан в виде t*t.mkv? Просто я хочу показать вам, как можно отсеять совпадения, если в папке есть ещё файлы с таким именем. Можно писать и полностью test.mkv, и частично указав совпадение *t.mkv/t*.mkv/*.mkv и т.д. и т.п.)
и получаем вывод, подтверждающий наличие такого файла и его размер:
Теперь можно проводить его очистку, введя следующую команду/код:
bash -c ‘> Видео/t*t.mkv’
После её выполнения вновь проверяем наличие файла и его размер командой/кодом:
ls -lh Видео/t*t.mkv
и получаем такой вывод, показывающий нам, что файл вроде бы есть, но его размер 0 Байт:
Т.е., мы с вами достигли нужного результата, а именно очистили огромный файл, быстро и легко через Терминал без его радикального удаления.
Таким способом можно чистить любые файлы, как по отдельности, так и несколько файлов одновременно, последовательно перечисляя в команде/коде имёна файлов с их расширениями и пути к ним, и, если один из файлов будет расположен в системной папке, то в начале команды/кода уже надо обязательно писать sudo .
Давайте посмотрим с вами один пример очистки сразу нескольких файлов, с разными расширениями, один из которых будет находится в домашнем каталоге Пользователя, а два других в системной папке.
Допустим у нас с вами есть тот же видео-файл test.mkv размером 8.6 Гб в папке Видео, лог-файл test.log размером 5.7 Мб в системной папке /var/log и ISO-образ test.iso размером 2.7 Гб, также в системной папке /opt/test.
Давайте мы с вами проверим, что эти файлы действительно есть и проверим их размер, командой/кодом:
ls -lh Видео/t*t.mkv /var/log/test.log /opt/test/test.iso
и получим вывод, подтверждающий нам, что файлы такие есть, а также размер файлов:
Теперь мы с вами очистим файлы до нуля байт каждый, введя следующую команду/код:
sudo bash -c ‘> Видео/t*t.mkv > /var/log/test.log > /opt/test/test.iso’
После выполнения команды/кода снова проверяем наличие файлов и их размер командой/кодом:
ls -lh Видео/t*t.mkv /var/log/test.log /opt/test/test.iso
и получаем вывод Терминала, показывающий нам, что файлы есть, но размер каждого 0 Байт:
Выводы:
Таким способом можно очищать файлы любого размера, любого расширения, в любом месте в системе, по одному или группами, до нуля байт, без радикального их удаления.
Также такие команды/коды, как для одного файла, так и для групп файлов можно заносить в Планировщик заданий Cron, или в таймеры Systemd (о них мы с вами в ближайшее время и поговорим подробнее в отдельной статье), для систематической чистки файлов по расписанию, установленному вами по вашему усмотрению.
А Вы какие способы очистки (не удаления!) файлов до нуля байт знаете?
Делитесь своими способами с нашими читателями в комментариях под статьёй или на нашем форуме, в соответсвтующей теме (ссылка ниже).
Источник
Как очистить (усечь) файлы журнала в Linux
Как очистить (усечь) файлы журнала в Linux
В какой-то момент жизненного цикла Sysadmin может потребоваться очистить файл журнала, чтобы сэкономить место на системном диске или по любой другой причине. Существуют различные способы очистки файла в системе Linux.
Пустой файл журнала с помощью команды truncate
Самый безопасный способ очистки файла журнала в Linux — использование команды truncate. Команда усечения используется для сокращения или расширения размера каждого ФАЙЛА до указанного размера.
Где -s используется для установки или настройки размера файла по размеру байтов. file Может быть относительно текущего каталога или абсолютный путь к файлу при условии.
Для полных опций команды усечения используйте опцию —help
Пустой файл журнала, используя:> или true>
Вы также можете использовать :> для очистки содержимого файла. Синтаксис
Пустой файл журнала с помощью команды echo
Если вы ничего не отобразите в файле, он очистит содержимое, чтобы очистить его.
Пустой файл журнала с помощью команды dd
Синтаксис для использования dd команды
Смотрите примеры ниже
Для нескольких файлов достаточно простого цикла в bash.
Используйте любой из методов, чтобы очистить ваши большие файлы журнала.
Источник
Как обрезать файлы до нулевого размера в Linux
How to Truncate (Empty) Files in Linux
В этом руководстве объясняется, как обрезать файлы до нулевого размера в системах Linux с помощью перенаправления оболочки и truncate команды.
В некоторых ситуациях может потребоваться усечь (очистить) существующий файл до нулевой длины. Проще говоря, усечение файла означает удаление содержимого файла без удаления файла.
Усечение файла происходит намного быстрее и проще, чем удаление файла , его воссоздание и установка правильных прав доступа и владельца . Кроме того, если файл открывается процессом, удаление файла может привести к сбою в работе программы, которая его использует.
Shell Redirection
Самый простой и наиболее используемый метод для усечения файлов — это использование > — оператора перенаправления оболочки.
Общий формат для усечения файлов с использованием перенаправления:
- В : средстве толстой кишки true и не производит никакого вывода.
- Оператор > перенаправления перенаправляет вывод предыдущей команды в указанный файл.
- filename , файл, который вы хотите усечь.
Если файл существует , он будет обрезан до нуля. В противном случае файл будет создан.
Вместо : можно также использовать другую команду, которая не выдает никаких результатов.
Вот пример использования cat команды для вывода содержимого /dev/null устройства, которое возвращает только символ конца файла:
Еще одна команда, которая может быть использована echo . -n Опция говорит echo не для добавления новой строки:
В большинстве современных оболочек, таких как Bash или Zsh, вы можете опустить команду перед символом перенаправления и использовать:
Чтобы иметь возможность обрезать файл, вам необходимо иметь права на запись в файл. Обычно вы бы использовали sudo для этого, но привилегии суперпользователя не применяются к перенаправлению. Вот пример:
Есть несколько решений, которые позволяют перенаправлять с sudo . Первый вариант может запустить новую оболочку с помощью sudo и выполнить команду внутри этой оболочки, используя -c флаг:
Другой вариант — передать вывод в tee команду, повысить tee привилегии sudo и записать пустой вывод в заданный файл:
truncate команда
truncate утилита командной строки, которая позволяет уменьшить или расширить размер файла до заданного размера.
Общий синтаксис для усечения файлов до нулевого размера с помощью truncate команды, выглядит следующим образом:
Например, чтобы очистить журнал доступа Nginx, вы должны использовать:
Очистить все файлы журнала
Со временем ваш диск может загромождаться большим количеством больших файлов журнала, занимающих много места на диске.
Следующая команда очистит файлы, заканчивающиеся на «.log» в /var/log каталоге:
Лучшим вариантом будет вращение, сжатие и удаление файлов журналов с помощью logrotate инструмента.
Вывод
Чтобы обрезать файл в Linux, используйте оператор перенаправления, > за которым следует имя файла.
Источник