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

5 способов очистить или удалить содержимое большого файла в Linux


Иногда при работе с файлами в терминале Linux вам может потребоваться очистить содержимое файла, не открывая его с помощью каких-либо редакторов командной строки Linux. Как этого можно достичь?

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

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

С учетом сказанного ниже приведены средства очистки содержимого файла из командной строки.

Важно! Для целей этой статьи мы использовали файл access.log в следующих примерах.

1. Пустое содержимое файла путем перенаправления на Null

Самый простой способ очистить или очистить содержимое файла, используя перенаправление оболочки null (несуществующий объект) в файл, как показано ниже:

> access.log

2. Пустой файл с использованием «истинного» перенаправления команды

Здесь мы будем использовать символ : — это встроенная команда оболочки, которая по сути эквивалентна команде true и может использоваться как no-op (без операции). .

Другой метод — перенаправить вывод встроенной команды : или true в файл следующим образом:

: > access.log
OR 
true > access.log

3. Пустой файл с помощью утилиты cat/cp/dd с /dev/null.

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

Таким образом, файл устройства /dev/null является специальным файлом, который списывает (удаляет) любые входные данные, отправленные в него, или его выходные данные такие же, как и у пустого файла.

Кроме того, вы можете очистить содержимое файла, перенаправив вывод /dev/null в него (файл) в качестве ввода с помощью команды cat:

cat /dev/null > access.log

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

cp /dev/null access.log

В следующей команде dd if означает входной файл, а of относится к выходному файлу.

dd if=/dev/null of=access.log

4. Пустой файл с помощью команды echo

Здесь вы можете использовать команду echo с пустой строкой и перенаправить ее в файл следующим образом:

echo "" > access.log
OR
echo > access.log

Примечание. Следует помнить, что пустая строка — это не то же самое, что значение null. Строка уже является объектом, хотя она может быть пустой, тогда как значение null просто означает отсутствие объекта.

По этой причине, когда вы перенаправляете команду out из приведенной выше команды echo в файл и просматриваете содержимое файла с помощью команды cat, команда is печатает пустую строку (пустую строку).

Чтобы отправить в файл нулевой вывод, используйте флаг -n, который сообщает echo не выводить завершающую новую строку, ведущую к пустой строке, созданной в предыдущей команде.

echo -n "" > access.log

5. Пустой файл с помощью команды truncate

Команда truncate помогает уменьшить или увеличить размер файла до определенного размера.

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

truncate -s 0 access.log

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

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