- 5 способов очистить или удалить содержимое большого файла в Linux
- 1. Очистить содержимое файла путем перенаправления на Null
- 2. Пустой файл с использованием перенаправления команды true
- 3. Пустой файл Использование утилит cat/cp/dd с/dev/null
- 4. Очистить файл с помощью команды echo
- 5. Очистить файл с помощью команды усечения
- Как очистить файл журнала в Linux
- 4 способа очистить файл в Linux
- Способ 1: усечь файл с помощью команды truncate
- Способ 2: Пустой файл, используя :> или >
- Способ 3: использование команды echo для очистки файла в Linux
- Способ 4: используйте /dev/null, чтобы очистить файл
- Как очистить (усечь) файлы журнала в Linux
- Как очистить (усечь) файлы журнала в Linux
- Пустой файл журнала с помощью команды truncate
- Пустой файл журнала, используя:> или true>
- Пустой файл журнала с помощью команды echo
- Пустой файл журнала с помощью команды dd
- Файлы в Linux
- Типы файлов в Linux
- Узнать расположение файла
- Создать сразу несколько файлов
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 дней.
Как удалить содержимое (файлы и каталоги) в одной папке за один раз.
Источник
Как очистить файл журнала в Linux
Вы окажетесь в ситуациях, когда вам нужно очистить файл. Это часто случается, когда у вас огромные файлы журналов, и как бы вы это сделали?
Один не очень чистый способ – удалить файл, а затем создать новый файл. Но это не очень хорошая идея. Это не будет тот же файл, временная метка (atime, mtime и т. д.). Будет отличаться вместе с другими правами доступа к файлам.
Вместо создания нового пустого файла вы можете удалить его содержимое. Итак, как вы очищаете файл в Linux? Как очистить файл от всего его содержимого без удаления самого файла?
4 способа очистить файл в Linux
Существует несколько способов очистки файла без его фактического удаления. Позвольте нам показать вам некоторые из этих методов.
Способ 1: усечь файл с помощью команды truncate
Самый безопасный способ обрезать файл журнала – использовать команду truncate.
В приведенной выше команде -s используется для установки/настройки размера (в байтах) файла. Когда вы используете -s 0, это означает, что вы изменили размер файла до 0 байт.
Способ 2: Пустой файл, используя :> или >
Самый простой способ очистить файл – использовать команду ниже. Если файл не используется, он будет работать в Bash:
Хотя вышеперечисленное работает только в Bash Shell, вы можете использовать аналогичную команду для других оболочек:
Вы также можете использовать эту команду для очистки файла:
Способ 3: использование команды echo для очистки файла в Linux
Другой способ очистить файл – использовать команду echo в Linux:
Вы также можете использовать команду echo следующим образом:
Способ 4: используйте /dev/null, чтобы очистить файл
Вы также можете использовать знаменитую /dev/null и объединить ее с командой cat для очистки файла журнала:
И если у вас недостаточно прав для какой-либо из вышеперечисленных команд, это верный выстрел, но немного грязный способ добиться этого:
Мы надеемся, что этот быстрый совет помог вам очистить файл в Linux. Добавьте нас в закладки для получения дополнительных советов по Linux.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Как очистить (усечь) файлы журнала в Linux
Как очистить (усечь) файлы журнала в Linux
В какой-то момент жизненного цикла Sysadmin может потребоваться очистить файл журнала, чтобы сэкономить место на системном диске или по любой другой причине. Существуют различные способы очистки файла в системе Linux.
Пустой файл журнала с помощью команды truncate
Самый безопасный способ очистки файла журнала в Linux — использование команды truncate. Команда усечения используется для сокращения или расширения размера каждого ФАЙЛА до указанного размера.
Где -s используется для установки или настройки размера файла по размеру байтов. file Может быть относительно текущего каталога или абсолютный путь к файлу при условии.
Для полных опций команды усечения используйте опцию —help
Пустой файл журнала, используя:> или true>
Вы также можете использовать :> для очистки содержимого файла. Синтаксис
Пустой файл журнала с помощью команды echo
Если вы ничего не отобразите в файле, он очистит содержимое, чтобы очистить его.
Пустой файл журнала с помощью команды dd
Синтаксис для использования dd команды
Смотрите примеры ниже
Для нескольких файлов достаточно простого цикла в bash.
Используйте любой из методов, чтобы очистить ваши большие файлы журнала.
Источник
Файлы в Linux
Типы файлов в Linux
В Linux всё является файлами и tty терминалы не исключение.
Или аналогичную команду
crw—w—-. 1 andrei tty 136, 1 Nov 19 12:43 /dev/pts/1
Первый символ — это тип файла.
Доступно семь типов файлов: обычные, директории, символьные, блоки, сокеты, именованые каналы, символьные ссылки
— : regular file
d : directory
c : character device file
b : block device file
s : local socket file
p : named pipe
l : symbolic link
Тип c означает character. То есть этот файл может принимать и показывать символы
drwxr-xr-x. 118 root root 8192 Nov 19 11:02 /etc
Видно, что тип файла d. То есть directory
Для просмотра дисков/блоков выполните
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 7G 0 part ├─centos-root 253:0 0 6.2G 0 lvm / └─centos-swap 253:1 0 820M 0 lvm [SWAP] sr0 11:0 1 57.7M 0 rom /run/media/andrei/VBox_GAs_6.1.10
brw-rw—-. 1 root disk 8, 0 Nov 19 11:02 /dev/sda brw-rw—-. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw—-. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2
Можно убедитсья, что тип файлов b. То есть block
? означает что должен быть один любой символ.
brw-rw—-. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw—-. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2
[12] означает что должен быть либо символ 1 либо символ 2
brw-rw—-. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw—-. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2
Когда вы хотите узнать версию системы вы можете выполнить
ls -l /etc/system-release
lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release
Тип файла l означает link то есть это не настоящий файл, а ссылка
ls -l /etc/system-release /etc/centos-release /etc/redhat-release
-rw-r—r—. 1 root root 37 Oct 23 17:53 /etc/centos-release lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/redhat-release -> centos-release lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release
/etc/centos-release — это настоящий (regular) файл а остальные — ссылки на него.
Если бы вы пользовались redhat то настоящим был бы redhat-release
Ещё один способ получить информацию о версии — выполнить lsb_release -d где -d означает description
Description: CentOS Linux release 7.9.2009 (Core)
Узнать расположение файла
Узнать где находится файл lsb_release можно командой which lsb_release. Чтобы сразу получить дополнительную информацию выполните
ls -lF $(which lsb_release)
-rwxr-xr-x. 1 root root 15929 Mar 27 2015 /usr/bin/lsb_release*
Опция -F означает показать тип файлов. Поэтому нам удалось увидеть * после lsb_release. * означает, что файл исполняемый.
Чтобы узнать откуда взялся файл можно воспользоваться командой rpm с опциями q (query) и f (file)
rpm -qf $(which lsb_release)
Чтобы скопировать файл в интерактивном режиме воспользуйтесь командой cp с опцией i (interactive)
interactive означает, что если файл с таким имененм существует, вас спросят прежде чем затирать его
cp -i /etc/hosts .
cp -i /etc/hosts .
cp: overwrite ‘./hosts’?
Чтобы создать директорию сразу же с поддиректорией внутри воспользуйтесь командлой mkdir с опцией p (parent)
mkdir -p sites/heiheiru
ls -l sites
total 0
drwxrwxr-x. 2 andrei andrei 6 Nov 19 13:40 heiheiru
Создать сразу несколько файлов
Чтобы создать одновременно несколько файлов с именами идущими по порядку выполните touch с <>
touch files/file <1..5>
ls -l files
-rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file1 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file2 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file3 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file4 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:46 file5
Чтобы скопировать директорию files в директорию sites со всем содержимым выполните
cp -R files sites
ls -l sites/files/
total 0 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file1 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file2 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file3 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file4 -rw-rw-r—. 1 andrei andrei 0 Nov 19 13:49 file5
Директория files была скопирована в директорию sites, то есть теперь у sites есть поддиректория files.
Если у вас установлен модуль tree вы можете наглядно изучить вложенность. Если нет — выполните сперва sudo yum install tree
sites └── files ├── file1 ├── file2 ├── file3 ├── file4 └── file5 1 directory, 5 files
Создать ссылку можно командой ln, символьную ссылку ln -s
Источник