- Стереть содержимое всех текстовых файлов в папке
- 4 ответа 4
- по поводу текстовых файлов
- 5 Ways to Empty or Delete a Large File Content in Linux
- 1. Empty File Content by Redirecting to Null
- 2. Empty File Using ‘true’ Command Redirection
- 3. Empty File Using cat/cp/dd utilities with /dev/null
- 4. Empty File Using echo Command
- 5. Empty File Using truncate Command
- Как очистить файл в Linux
- Мои способы
- Способ 1
- Способ 2
- Способ 3
- Способ 4
- Способ 5
- Способ 6
- Удалить все содержимое файла (очистить файл) в Unix/Linux
- One thought on “ Удалить все содержимое файла (очистить файл) в Unix/Linux ”
- Добавить комментарий Отменить ответ
- Рубрики
- соц сети
- Архив новостей
- Свежие записи
- Свежие комментарии
Стереть содержимое всех текстовых файлов в папке
А понятие «текстовый» у вас согласно его mime-type? А как вы определяете зулусский язык в Unicode, например?
4 ответа 4
что бы «стереть содержимое файлов», можно просто обрезать их размер до нуля. Для этого есть команда truncate —size 0 . Найти все файлы к каталоге (рекурсивно) можно такой командой find . -type f (где точка — текущий каталог).
Соединяем. Вначале запускаем
и смотрим на список файлов, что он соответствует требуемому. Если все ок, запускаем такое
find . -type f -exec truncate --size 0 <> \;
запишет в файл (в самое начало) строку нулевой длины, тем самым как бы «сотрёт» содержимое файла.
аналогичное действие произведёт и такая, например, команда:
а чтобы произвести это действие со всеми файлами в текущем каталоге (и подкаталогах), можно, например, воспользоваться программой find:
$ find -type f -exec truncate -s 0 <> \;
это если использовать вариант без перенаправления ввода/вывода (проще говоря — без > ).
если же требуется использовать перенаправление, придётся вызывать интерпретатор оболочки. с приведёнными выше вариантами:
$ find -type f -exec sh -c 'cp /dev/null > <>' \; $ find -type f -exec sh -c 'cat /dev/null > <>' \; $ find -type f -exec sh -c ': > <>' \;
по поводу текстовых файлов
если требуется определить именно текстовый файл (на основе его содержимого), то, как советуют, например, здесь, можно использовать опцию -I программы grep.
$ find -type f -exec truncate -s 0 <> \;
надо добавить вызов программы grep:
$ find -type f -exec grep -Iq . <> \; -and -exec truncate -s 0 <> \;
аналогично и для других примеров.
5 Ways to Empty or Delete a Large File Content in Linux
Occasionally, while dealing with files in Linux terminal, you may want to clear the content of a file without necessarily opening it using any Linux command line editors. How can this be achieved? In this article, we will go through several different ways of emptying file content with the help of some useful commands.
Caution: Before we proceed to looking at the various ways, note that because in Linux everything is a file, you must always make sure that the file(s) you are emptying are not important user or system files. Clearing the content of a critical system or configuration file could lead to a fatal application/system error or failure.
With that said, below are means of clearing file content from the command line.
Important: For the purpose of this article, we’ve used file access.log in the following examples.
1. Empty File Content by Redirecting to Null
A easiest way to empty or blank a file content using shell redirect null (non-existent object) to the file as below:
2. Empty File Using ‘true’ Command Redirection
Here we will use a symbol : is a shell built-in command that is essence equivalent to the true command and it can be used as a no-op (no operation).
Another method is to redirect the output of : or true built-in command to the file like so:
# : > access.log OR # true > access.log
3. Empty File Using cat/cp/dd utilities with /dev/null
In Linux, the null device is basically utilized for discarding of unwanted output streams of a process, or else as a suitable empty file for input streams. This is normally done by redirection mechanism.
And the /dev/null device file is therefore a special file that writes-off (removes) any input sent to it or its output is same as that of an empty file.
Additionally, you can empty contents of a file by redirecting output of /dev/null to it (file) as input using cat command:
Next, we will use cp command to blank a file content as shown.
In the following command, if means the input file and of refers to the output file.
4. Empty File Using echo Command
Here, you can use an echo command with an empty string and redirect it to the file as follows:
# echo "" > access.log OR # echo > access.log
Note: You should keep in mind that an empty string is not the same as null. A string is already an object much as it may be empty while null simply means non-existence of an object.
For this reason, when you redirect the out of the echo command above into the file, and view the file contents using the cat command, is prints an empty line (empty string).
To send a null output to the file, use the flag -n which tells echo to not output the trailing newline that leads to the empty line produced in the previous command.
5. Empty File Using truncate Command
The truncate command helps to shrink or extend the size of a file to a defined size.
You can employ it with the -s option that specifies the file size. To empty a file content, use a size of 0 (zero) as in the next command:
That’s it for now, in this article we have covered multiple methods of clearing or emptying file content using simple command line utilities and shell redirection mechanism.
These are not probably the only available practical ways of doing this, so you can also tell us about any other methods not mentioned in this guide via the feedback section below.
Как очистить файл в 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. Пишу плагины на заказ. Все мои услуги. Веду блог о разработке, дайджест в телеграмме и в ВК. Вы всегда можете нанять меня.
Удалить все содержимое файла (очистить файл) в Unix/Linux
Хочу описать в своей статье «Удалить все содержимое файла в Unix/Linux» как можно очистить содержимое файла. Некоторые скажут что это банально, взял удалил файл и создал заново, делов то. Но иногда это не проще и не выход.
Тем более для общего развития, та кому то и пригодиться. Я вот, например, не все методы знал.
1. Если вы хотите очистить содержимое файла вы можете просто удалить файл и создать его заново:
$ rm -rf /home/captain/file_for_delete.txt
2. Существуют и другие методы очистки файла, например методом «echo».
Чтобы очистить свой файл, просто введите следующую команду. Я использую свой php_error.log файл, например.
# echo -n > /home/captain/some_file_for_clear.txt
3. Можно удалить содержимое файла с помощью редакторов, например VI/VIM. Открываем файл, я открою его vim:
# vim /home/captain/some_file_for_clear.txt
Когда открылся редактор, нажимаем «dG» и чтобы сохранить, используем сначала «:» и наживаем «wq» после чего нажимаем энтер.
PS: Команды нужно использовать без кавычек.
4. Используем null для очистки файла:
# cat /dev/null > /home/captain/file_clean.sh
# cp /dev/null > /home/captain/file_clean.sh
5. Еще 1 интересная команда для очистки файла:
6. С помощью текстового редактора SED:
Тема «Удалить все содержимое файла (очистить файл) в Unix/Linux» завершена.
One thought on “ Удалить все содержимое файла (очистить файл) в Unix/Linux ”
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Рубрики
- Arch Linux (167)
- Commands (36)
- Debian’s (635)
- Administration tools Ubuntu (37)
- Backups Debian’s (7)
- Database в Ubuntu (58)
- Games (игры) (1)
- Monitoring в Debian и Ubuntu (49)
- Virtualization в Ubuntu / Debian/ Linux Mint (41)
- Docker (22)
- Kubernetes (6)
- KVM (4)
- OpenVZ (3)
- Vagrant (5)
- VirtualBox (6)
- ArgoCD (1)
- Concourse (1)
- Gitlab (1)
- Jenkinks (4)
- Spinnaker (1)
- Apache (32)
- Cherokee (1)
- FTP-services (5)
- Lighttpd (1)
- Nginx (26)
- PHP (27)
- Proxy для Debian’s (2)
- Tomcat (4)
- Панели управления в Ubuntu/Debian/Mint (24)
- Установка и настройка почты на Ubuntu/Debian (12)
- Хранилища (clouds) (2)
- Administration tools freeBSD (19)
- Database во FreeBSD (52)
- Monitoring во freeBSD (37)
- Virtualization во FreeBSD (22)
- VoIP (1)
- Установка Web сервисов (91)
- Установка и настройка почты (6)
- Установка из ports (пакетов) (19)
- Установка из sorce code (исходников) (23)
- Непрерывная интеграция (CI) (27)
- Database в MacOS (36)
- Monitoring в Mac OS (31)
- Security (безопасность) (12)
- Virtualization в Mac OS (30)
- Docker (19)
- Kubernetes (6)
- Vagrant (5)
- VirtualBox (5)
- ArgoCD (1)
- CircleCI (1)
- Concourse (1)
- Gitlab (1)
- Jenkinks (4)
- Spinnaker (1)
- Administration tools CentOS (49)
- Backups RPM’s (4)
- Database в CentOS (68)
- Monitoring в CentOS (67)
- Virtualization в CentOS/ Red Hat/ Fedora (42)
- Docker (23)
- Kubernetes (6)
- KVM (5)
- OpenVZ (2)
- Vagrant (5)
- VirtualBox (6)
- VMWare (3)
- ArgoCD (1)
- Concourse (1)
- Gitlab (1)
- Jenkinks (4)
- Spinnaker (1)
- Apache (35)
- Cherokee (1)
- DNS (3)
- FTP (10)
- Nginx (33)
- PHP (34)
- Proxy для RedHat’s (2)
- Tomcat (2)
- Voice (2)
- Панели управления в CentOS/Red Hat/Fedora (27)
- Прокси сервер на CentOS/RHEL/Fedora (4)
- Установка и настройка почты на CentOS/RHEL/Fedora (14)
- Хранилища (clouds) (1)
соц сети
Архив новостей
Свежие записи
Свежие комментарии
- Глеб к записи Установка Adobe Flash Player в Debian/Ubuntu/Mint
- Максим к записи Заблокировать User Agents используя Nginx
- Денис к записи Как включить EPEL репозиторий на CentOS
- Гость к записи Закомментировать/Раскомментировать строки vi/vim в Unix/Linux
- Sergey к записи Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint