- 5 способов очистить или удалить содержимое большого файла в Linux
- 1. Очистить содержимое файла путем перенаправления на Null
- 2. Пустой файл с использованием перенаправления команды true
- 3. Пустой файл Использование утилит cat/cp/dd с/dev/null
- 4. Очистить файл с помощью команды echo
- 5. Очистить файл с помощью команды усечения
- 5 способов очистить или удалить содержимое большого файла в Linux
- 1. Пустое содержимое файла путем перенаправления на Null
- 2. Пустой файл с использованием «настоящего» перенаправления команд
- 3. Пустой файл с помощью утилиты cat/cp/dd с /dev/null
- 4. Очистить файл с помощью команды echo
- 5. Очистить файл с помощью команды truncate
- Как очистить файл в Linux
- Мои способы
- Способ 1
- Способ 2
- Способ 3
- Способ 4
- Способ 5
- Способ 6
5 способов очистить или удалить содержимое большого файла в Linux
Иногда, работая с файлами в терминале Linux, вы можете захотеть очистить содержимое файла, не открывая его обязательно с помощью редакторов командной строки Linux. Как этого добиться? В этой статье мы рассмотрим несколько различных способов очистки содержимого файла с помощью некоторых полезных команд.
Внимание : прежде чем мы перейдем к рассмотрению различными способами, обратите внимание, что, поскольку в Linux все является файлом, вы всегда должны убедиться, что файл (ы), который вы очищаете, не являются важными пользовательскими или системными файлами. Очистка содержимого критически важной системы или файла конфигурации может привести к фатальной ошибке или сбою приложения/системы.
С учетом сказанного ниже приведены способы очистки содержимого файла из командной строки.
Важно : для целей этой статьи мы использовали файл access.log в следующих примерах.
1. Очистить содержимое файла путем перенаправления на Null
Самый простой способ очистить содержимое файла с помощью перенаправления оболочки null (несуществующий объект) в файл, как показано ниже :
Пустой большой файл с использованием Null Перенаправление в Linux
2. Пустой файл с использованием перенаправления команды true
Здесь мы будем использовать символ : – это встроенная команда оболочки, которая по сути эквивалентна команде true и может использоваться как безоперационная (без операции).
Другой Метод заключается в перенаправлении вывода встроенной команды : или true в файл следующим образом:
#:> access.logOR # true> access.log
Очистить большой файл с помощью команд Linux
3. Пустой файл Использование утилит cat/cp/dd с/dev/null
В Linux устройство null в основном используется для отбрасывания нежелательных выходных потоков процесса , или как подходящий пустой файл для входных потоков. Обычно это выполняется с помощью механизма перенаправления.
Поэтому файл устройства /dev/null является специальным файлом, который записывает (удаляет) любой ввод, отправленный на он или его вывод такие же, как и у пустого файла.
Кроме того, вы можете очистить содержимое файла, перенаправив на него вывод /dev/null (файл) в качестве ввода с помощью команды cat:
Очистить файл с помощью команды cat
Затем мы будем использовать команду cp для очистки содержимого файла, как показано.
Очистить содержимое файла с помощью команды cp
В следующей команде if означает входной файл, а of относится к выходному файлу.
# dd if =/ dev/null of = доступ. log
Очистить содержимое файла с помощью команды dd
4. Очистить файл с помощью команды echo
Здесь вы можете использовать команду echo с пустой строкой и перенаправить ее в файл следующим образом:
# echo ""> доступ .logOR # echo> access.log
Очистить файл с помощью команды echo
Примечание . Помните, что пустая строка не то же самое, что и null. Строка уже является объектом, поскольку она может быть пустой, тогда как null просто означает отсутствие объекта.
По этой причине, когда вы перенаправляете команду out of echo выше в файл, и просмотрите содержимое файла с помощью команды cat, он печатает пустую строку (пустую строку).
Чтобы отправить нулевой вывод в файл, используйте флаг -n , который сообщает echo не выводить завершающую новую строку, которая ведет к пустой строке, созданной в предыдущей команде.
Пустой файл с нулевым перенаправлением
5. Очистить файл с помощью команды усечения
Команда truncate помогает уменьшить или увеличить размер файла до определенного размера.
Вы можете использовать его с параметром -s , который указывает размер файла. Чтобы очистить содержимое файла, используйте размер 0 (ноль), как в следующей команде:
Обрезать содержимое файла в Linux
На этом пока что, в этой статье мы рассмотрели несколько методов очистки или опустошения содержимого файла. с помощью простых утилит командной строки и механизма перенаправления оболочки.
Вероятно, это не единственные доступные практические способы сделать это, поэтому вы также можете сообщить нам о любых других методах, не упомянутых в этом руководстве, через отзывы раздел ниже.
Есть ли способ очистить половину файла вместо полной очистки?
Предположим, мне нужен файл с последним 10 дней журналов и возможность удаления/очистки старше 10 дней (я не хочу архивировать этот файл и заменять новый файл для свежих журналов), могу ли я очистить половину файла в файле?
Должен быть способ, но мы должны провести небольшое исследование по этому поводу, прежде чем мы сможем предложить вам решение.
Уважаемые, у меня есть файл журнала, в котором у меня есть журналы за 3 месяца, как я могу просто сохранить журнал за последние 30 дней и остаток для удаления. Как это сделать?
Как указать это условие, если размер файла журнала увеличивается на 2 ГБ, а затем очищаются данные месячной давности ..
Вам нужно будет сделать это через задание cron. ты знаком с cron? Вы должны написать сценарий, сохранить его где-нибудь, а затем запустить его через cron.
Сценарий должен обрабатывать логику разбора файла на строки, анализировать дату в каждой строке, а затем отбросьте строки с датой старше 30 дней.
Как удалить содержимое (файлы и каталоги) в одной папке за один раз.
# cp/dev/null/filefolder/Many files. # echo '' 'Проблема заключается в том, что файл автоматически создается или удаляется (динамический файл создается)
Ответ
Я знаю, что
>
и:>
- это методы, которые очищают файл без фактического «касания» это, если файл уже используется.Остальные методы работают так же? Мы всегда получаем билеты для больших файлов, и в 80% случаев нам нужно сжать содержимое файла и усечь или «обнулить» его, но проблема заключается в том, что файл уже используется, и мы не можем остановить процесс, использующий его. .
На данный момент я использовал только методы перенаправления, упомянутые в начале моего сообщения.
Ответ
@Lokiyo,
Всем известно, что
Ответ>
и:>
- стандартные параметры для очистки содержимого большого файла, не касаясь его. Но есть и другие методы, которые работают так же, как показано в этой статье, я думаю, вам стоит попробовать и посмотреть ..
Когда я открыл эту ссылку, я ожидал способов фактически избавиться от содержимого файла на диске. Все эти методы только отключают дисковое пространство от файла, оставляя содержимое на диске.
Ответить
Однако из перечисленных вариантов я думаю, что «truncate -s 0» - лучший вариант.
Система опустила слово «файл» в конце команды усечения, потому что я поместил его в знаки lt и gt.
Ответ
@James
Существуют и другие методы полного удаления содержимого файла с диска, такие как команда shred и некоторые другие. Вскоре мы создадим практическое руководство по этой теме.
Ответ
Другой простой вариант с использованием команды cat:
Ответьте
cat>/path/to/file
Затем нажмите Ctrl + D
Вуаля, пустой файл.
@Mike
Большое спасибо за полезные совет, это тоже очень просто.
Ответьте
все трюки с перенаправлением «>» одинаковы!
> file
:> файл
true> файл
cat/dev/null> файл
my_prog> файл (если my_prog не выводит результат), потому что оболочка обрезать (или создать) «файл» перед запуском команды (cat, true,…), наиболее важным является то, что команда не выводит ничего .
вы можете понять, что> file - это лучший, потому что для него не нужна другая программа!
Ответ
@Bruno
Это правда, основная идея заключается в использовании механизма перенаправления. Мы просто предлагаем различные альтернативы, которые пользователь может выбрать для использования, хотя они больше похожи на одинаковые.
Ответить
5 способов очистить или удалить содержимое большого файла в Linux
Иногда при работе с файлами в терминале Linux вам может понадобиться очистить содержимое файла, не обязательно открывая его с помощью каких-либо редакторов командной строки Linux. Как этого добиться? В этой статье мы рассмотрим несколько различных способов очистки содержимого файла с помощью некоторых полезных команд.
Внимание: прежде чем мы перейдем к рассмотрению различных способов, обратите внимание, что, поскольку в Linux все является файлом, вы всегда должны убедиться, что файл(ы) вы очищаете не важные пользовательские или системные файлы. Очистка содержимого критической системы или файла конфигурации может привести к фатальной ошибке или сбою приложения/системы.
С учетом сказанного ниже приведены способы очистки содержимого файла из командной строки.
Важно. В целях этой статьи мы использовали файл access.log в следующих примерах.
1. Пустое содержимое файла путем перенаправления на Null
Самый простой способ очистить содержимое файла с помощью перенаправления оболочки null (несуществующий объект) в файл, как показано ниже:
2. Пустой файл с использованием «настоящего» перенаправления команд
Здесь мы будем использовать символ : — это встроенная команда оболочки, которая по сути эквивалентна команде true и может использоваться как неоперативная (без операции) .
Другой способ — перенаправить вывод встроенной команды : или true в файл следующим образом:
# : > access.log OR # true > access.log
3. Пустой файл с помощью утилиты cat/cp/dd с /dev/null
В Linux устройство null в основном используется для отбрасывания нежелательных выходных потоков процесса или в качестве подходящего пустого файла для входных потоков. Обычно это делается с помощью механизма перенаправления.
Таким образом, файл устройства /dev/null является специальным файлом, который списывает (удаляет) любой отправленный ему ввод или его вывод такой же, как у пустого файла.
Кроме того, вы можете очистить содержимое файла, перенаправив вывод /dev/null в него (файл) в качестве ввода с помощью команды cat:
Далее мы будем использовать команду cp для очистки содержимого файла, как показано на рисунке.
В следующей команде if означает входной файл, а of — выходной файл.
4. Очистить файл с помощью команды echo
Здесь вы можете использовать команду echo с пустой строкой и перенаправить ее в файл следующим образом:
# echo "" > access.log OR # echo > access.log
Примечание. Следует помнить, что пустая строка не равно нулю. Строка уже является объектом, поскольку она может быть пустой, а нуль просто означает отсутствие объекта.
По этой причине, когда вы перенаправляете команду out of the cat, печатается пустая строка (пустая строка).
Чтобы отправить вывод null в файл, используйте флаг -n , который указывает echo не выводить завершающую новую строку, которая ведет к пустой строке, созданной в предыдущей команде.
5. Очистить файл с помощью команды truncate
Команда truncate помогает уменьшить или увеличить размер файла до определенного размера.
Вы можете использовать его с опцией -s , которая определяет размер файла. Чтобы очистить содержимое файла, используйте размер 0 (ноль), как в следующей команде:
На данный момент это все, в этой статье мы рассмотрели несколько методов очистки или очистки содержимого файла с использованием простых утилит командной строки и механизма перенаправления оболочки.
Вероятно, это не единственные доступные практические способы сделать это, поэтому вы также можете сообщить нам о любых других методах, не упомянутых в этом руководстве, в разделе обратной связи ниже.
Как очистить файл в Linux
Быстрая очистка содержимого файла (его обнуление) — часто встречающаяся задача для любого программиста, владеющего начальными навыками пользования консоли Linux.
Мои способы
Будьте внимательны и осторожны, так как некторые методы, приведенные в данном посте, требуют расширенных прав пользовтеля или установленных утилит в вашей системе.
Способ 1
Самый простой способ — это использование перенаправление вывода с использованием > :
Способ 2
Способ аналогичен предыдущему, но с использованием утилиты echo . Параметр -n запрещает выводить перевод строки (символ новой строки):
Способ 3
Магический файл /dev/null — это своего рода Бермудский треугольник вашего компьютера, все, что туда попадает, пропадает бесследно.
Если при использовании данного варианта вы получили сообщение об ошибке File already exists , можно использовать опцию noclobber :
Способ 4
Суть его заключается в копировании магического файла в очищаемый вами:
Способ 5
Можно также использовать утилиту truncate , которая уменьшаяет или увеличивает размер файла:
Способ 6
Есть возможность комбинировать методы. Например, используя утилиту tee , которая считывает данные из стандартного устройства ввода и записывает их на стандартное устройство вывода или в файл:
Русский разработчик со стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Joomla, Drupal. Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги. Веду блог о разработке, дайджест в телеграмме и в ВК. Вы всегда можете нанять меня.