Truncate linux что это

Как обрезать (пустые) файлы в Linux

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

Усечение файла намного быстрее и проще, чем удаление файла , его воссоздание и установка правильных разрешений и прав собственности . Кроме того, если файл открывается каким-либо процессом, его удаление может вызвать сбой в работе программы, которая его использует.

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

Перенаправление оболочки

Самый простой и наиболее часто используемый метод обрезки файлов — использование оператора перенаправления оболочки > .

Общий формат усечения файлов с использованием перенаправления:

  • : Двоеточие означает true и не выводит ничего.
  • Оператор перенаправления > перенаправляет вывод предыдущей команды в данный файл.
  • filename , файл, который вы хотите обрезать.

Если файл существует , он будет обрезан до нуля. В противном случае файл будет создан.

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

Вот пример использования команды cat для вывода содержимого устройства /dev/null , которое возвращает только символ конца файла:

Еще одна команда, которую можно использовать, — это echo . Параметр -n указывает echo не добавлять новую строку:

В большинстве современных оболочек, таких как Bash или Zsh, вы можете опустить команду перед символом перенаправления и использовать:

Чтобы иметь возможность обрезать файл, вам необходимо иметь права на запись в файл. Обычно для этого используется sudo , но повышенные привилегии root не применяются к перенаправлению. Вот пример:

Есть несколько решений, позволяющих перенаправлять с помощью sudo . Первый вариант может запустить новую оболочку с помощью sudo и выполнить команду внутри этой оболочки, используя флаг -c :

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

команда truncate

truncate — это служебная программа командной строки, позволяющая уменьшить или увеличить размер файла до заданного размера.

Общий синтаксис усечения файлов до нулевого размера с помощью команды truncate выглядит следующим образом:

Параметр -s 0 устанавливает нулевой размер файла.

Например, чтобы очистить журнал доступа к Nginx, вы должны использовать:

Очистить все файлы журнала

Со временем на вашем диске может появиться множество больших файлов журнала, занимающих много места на диске.

Следующая команда очистит файлы, заканчивающиеся на «.log» в каталоге /var/log :

Лучшим вариантом было бы повернуть, сжать и удалить файлы журналов с помощью инструмента logrotate .

Выводы

Чтобы обрезать файл в Linux, используйте оператор перенаправления > за которым следует имя файла.

Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.

Читайте также:  Wan miniport sstp что это windows 10

Источник

Как обрезать (очистить) файлы в Linux

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

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

Перенаправление оболочки

Самый простой и наиболее используемый метод для усечения файлов – это использование оператора перенаправления > оболочки.

Общий формат для усечения файлов с использованием перенаправления:

Давайте разберем команду:

  • : означает true и не производит никакого вывода.
  • Оператор перенаправления > перенаправляет вывод предыдущей команды в указанный файл.
  • filename, файл, который вы хотите усечь.

Если файл существует, он будет обрезан до нуля. В противном случае файл будет создан.

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

Вот пример использования catкоманды для вывода содержимого устройства /dev/null, которое возвращает только символ конца файла:

Еще одна команда, которая может быть использована echo. Опция -n говорит echo не для добавления новой строки:

В большинстве современных оболочек, таких как Bash или Zsh, вы можете опустить команду перед символом перенаправления и использовать:

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

Есть несколько решений, которые позволяют перенаправлять с sudo. Первый вариант может запустить новую оболочку с помощью sudo и выполнить команду внутри этой оболочки, используя флаг -c:

Другой вариант – направить вывод в teeкоманду, повысить teeпривилегии sudoи записать пустой вывод в заданный файл:

Команда truncate

truncate это утилита командной строки, которая позволяет уменьшить или расширить размер файла до заданного размера.

Общий синтаксис для усечения файлов до нулевого размера с помощью truncateкоманды, выглядит следующим образом:

Параметр -s 0 задает размер файла до нуля.

Например, чтобы очистить журнал доступа Nginx, вы должны использовать:

Очистить все файлы журнала

Со временем ваш диск может загромождаться большим количеством больших файлов журнала, занимающих много места на диске.

Следующая команда очистит файлы, заканчивающиеся на «.log» в каталоге /var/log:

Лучшим вариантом будет вращение, сжатие и удаление файлов журналов с помощью инструмента logrotate.

Заключение

Чтобы обрезать файл в Linux, используйте оператор перенаправления >, за которым следует имя файла.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как обрезать файлы до нулевого размера в Linux

How to Truncate (Empty) Files in Linux

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

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

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

Shell Redirection

Самый простой и наиболее используемый метод для усечения файлов — это использование > — оператора перенаправления оболочки.

Общий формат для усечения файлов с использованием перенаправления:

  • В : средстве толстой кишки true и не производит никакого вывода.
  • Оператор > перенаправления перенаправляет вывод предыдущей команды в указанный файл.
  • filename , файл, который вы хотите усечь.
Читайте также:  Qualcomm atheros wifi drivers windows 10

Если файл существует , он будет обрезан до нуля. В противном случае файл будет создан.

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

Вот пример использования cat команды для вывода содержимого /dev/null устройства, которое возвращает только символ конца файла:

Еще одна команда, которая может быть использована echo . -n Опция говорит echo не для добавления новой строки:

В большинстве современных оболочек, таких как Bash или Zsh, вы можете опустить команду перед символом перенаправления и использовать:

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

Есть несколько решений, которые позволяют перенаправлять с sudo . Первый вариант может запустить новую оболочку с помощью sudo и выполнить команду внутри этой оболочки, используя -c флаг:

Другой вариант — передать вывод в tee команду, повысить tee привилегии sudo и записать пустой вывод в заданный файл:

truncate команда

truncate утилита командной строки, которая позволяет уменьшить или расширить размер файла до заданного размера.

Общий синтаксис для усечения файлов до нулевого размера с помощью truncate команды, выглядит следующим образом:

Например, чтобы очистить журнал доступа Nginx, вы должны использовать:

Очистить все файлы журнала

Со временем ваш диск может загромождаться большим количеством больших файлов журнала, занимающих много места на диске.

Следующая команда очистит файлы, заканчивающиеся на «.log» в /var/log каталоге:

Лучшим вариантом будет вращение, сжатие и удаление файлов журналов с помощью logrotate инструмента.

Вывод

Чтобы обрезать файл в Linux, используйте оператор перенаправления, > за которым следует имя файла.

Источник

How to Use Truncate Command in Linux

Welcome to our tutorial on how to use truncate command in Linux. The Linux truncate command is often used to shrink or extend the size of each FILE to the specified size. The final size of the file depends on the initial. If a FILE (for example archive or log files) is larger than the specified size, the extra data is lost, but if a FILE is shorter, it is extended and the extended part (hole) reads as zero bytes.

The commands shown were tested on CentOS 7 machine and Ubuntu 16.04 server. Most Linux distributions ship with truncate command. If your system doesn’t have a truncate command, for Ubuntu/ Debian system, it is provided by the coreutils package.

If not installed, use:

Common truncate options

When using truncate, the SIZE argument has to be an integer and optional unit (example: 10K is 10*1024). The Units as used are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB. (as powers of 1000).

The SIZE argument may also be prefixed by one of the following modifying characters: ‘+‘ extend by, ‘‘ reduce by, ‘ ‘ at least, ‘/‘ round down to multiple of, ‘%‘ round up to multiple of.

Examples of truncate usage

Below is the most common usage examples of the truncate command.

1. Clear contents of a file with truncate

This is useful e.g for log clearing files. This is better than manually deleting a file and maybe doing a touch for the new one. The truncation process basically removes all the contents of the file. It does not remove the file itself, but it leaves it on the disk as a zero byte file. As an example, let’s clear our /var/log/syslog to 0 bytes using truncate.

Читайте также:  Elsawin для windows 10

If we do a check again for the file size, it should be 0 bytes.

Note that truncate command will retain file permissions and ownership. You can confirm by using ls -lh commands:

2. To truncate a file to a specific size

The example below will truncate a file to 100 bytes in size.

Now check the file size:

# ls -lh file.txt
-rw-r—r— 1 root root 100 Mar 17 18:40 file.txt

To truncate a file to 100 KB:

The M, G, T, P, E, Z, and Y may be used in place of «K» as required.

3. Extend file size with truncate

You can as well extend the size of the file from current to the desired state. Use the option -s with a + in size.

This will extend the file size from 100K to 300K by adding extra 200K.

4. Reduce file size with truncate

Let’s say you have a 500K file and would like to shrink it to 250K. You’ll use the -s option with a in size specified. E.g

You can see the current size changed to 250K.

Conclusion

This tutorial, hope helped you to understand Linux truncate command to alter file to specified size. Please share your suggestion and thoughts on the below comment section.

Источник

Truncate linux что это

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L

_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* начиная с glibc 2.3.5: */ _POSIX_C_SOURCE >= 200112L

ОПИСАНИЕ

Если до этого файл был больше указанного размера, все лишние данные будут утеряны. Если файл был меньше, он будет увеличен, а дополнительная часть будет заполнена нулевыми байтами («\0»).

Смещение файла не изменяется.

Если размер изменился, поля st_ctime и st_mtime (время последнего изменения состояния и время последнего изменения, соответственно; смотрите stat(2)) файла будут обновлены, а биты режимов set-user-ID и set-group-ID могут быть сброшены.

Для ftruncate() файл должен быть открыт на запись; для truncate() файл должен быть доступен на запись.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

ОШИБКИ

Для ftruncate() действуют те же ошибки, за исключением того, что вместо ошибок, связанных с неправильным path, появляются ошибки, связанные с файловым дескриптором fd:

EBADF Значение fd не является правильным файловым дескриптором. EBADF или EINVAL Дескриптор fd не открыт для записи. EINVAL Дескриптор fd не указывает на обычный файл. EINVAL или EBADF Файловый дескриптор fd не открыт на запись. В POSIX это допускается и переносимые приложения должны обрабатывать любую ошибку для этого случая (Linux возвращает EINVAL).

СООТВЕТСТВИЕ СТАНДАРТАМ

ЗАМЕЧАНИЯ

Первоначальные версии системных вызовов truncate() и ftruncate() в Linux не умели работать с большими файловыми смещениями. Позднее, в Linux 2.4 были добавлены системные вызовы truncate64() и ftruncate64() для работы с большими файлами. Однако это различие может игнорироваться приложениями, которые используют glibc, так как имеющиеся в ней обёрточные функции самостоятельно задействуют более новый системный вызов, если он доступен.

На некоторых 32-битных архитектурах интерфейс этих системных вызовов отличается от описанного выше по причинам, указанным в syscall(2).

Источник

Оцените статью