- Как обрезать (пустые) файлы в Linux
- Перенаправление оболочки
- команда truncate
- Очистить все файлы журнала
- Выводы
- Как обрезать файлы до нулевого размера в Linux
- How to Truncate (Empty) Files in Linux
- В этом руководстве объясняется, как обрезать файлы до нулевого размера в системах Linux с помощью перенаправления оболочки и truncate команды.
- Shell Redirection
- truncate команда
- Очистить все файлы журнала
- Вывод
- Как вырезать файл в заданный размер под Linux?
- 5 ответов
- Как отрезать первые n строк файла?
- Re: Как отрезать первые n строк файла?
- Re: Re: Как отрезать первые n строк файла?
- Re: Re: Re: Как отрезать первые n строк файла?
- Re: Re: Re: Как отрезать первые n строк файла?
- Re: Как отрезать первые n строк файла?
- Re: Как отрезать первые n строк файла?
- Re: Re: Re: Re: Как отрезать первые n строк файла?
- Как обрезать (очистить) файлы в Linux
- Перенаправление оболочки
- Команда truncate
- Очистить все файлы журнала
- Заключение
Как обрезать (пустые) файлы в 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, используйте оператор перенаправления > за которым следует имя файла.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Источник
Как обрезать файлы до нулевого размера в Linux
How to Truncate (Empty) Files in Linux
В этом руководстве объясняется, как обрезать файлы до нулевого размера в системах Linux с помощью перенаправления оболочки и truncate команды.
В некоторых ситуациях может потребоваться усечь (очистить) существующий файл до нулевой длины. Проще говоря, усечение файла означает удаление содержимого файла без удаления файла.
Усечение файла происходит намного быстрее и проще, чем удаление файла , его воссоздание и установка правильных прав доступа и владельца . Кроме того, если файл открывается процессом, удаление файла может привести к сбою в работе программы, которая его использует.
Shell Redirection
Самый простой и наиболее используемый метод для усечения файлов — это использование > — оператора перенаправления оболочки.
Общий формат для усечения файлов с использованием перенаправления:
- В : средстве толстой кишки true и не производит никакого вывода.
- Оператор > перенаправления перенаправляет вывод предыдущей команды в указанный файл.
- filename , файл, который вы хотите усечь.
Если файл существует , он будет обрезан до нуля. В противном случае файл будет создан.
Вместо : можно также использовать другую команду, которая не выдает никаких результатов.
Вот пример использования cat команды для вывода содержимого /dev/null устройства, которое возвращает только символ конца файла:
Еще одна команда, которая может быть использована echo . -n Опция говорит echo не для добавления новой строки:
В большинстве современных оболочек, таких как Bash или Zsh, вы можете опустить команду перед символом перенаправления и использовать:
Чтобы иметь возможность обрезать файл, вам необходимо иметь права на запись в файл. Обычно вы бы использовали sudo для этого, но привилегии суперпользователя не применяются к перенаправлению. Вот пример:
Есть несколько решений, которые позволяют перенаправлять с sudo . Первый вариант может запустить новую оболочку с помощью sudo и выполнить команду внутри этой оболочки, используя -c флаг:
Другой вариант — передать вывод в tee команду, повысить tee привилегии sudo и записать пустой вывод в заданный файл:
truncate команда
truncate утилита командной строки, которая позволяет уменьшить или расширить размер файла до заданного размера.
Общий синтаксис для усечения файлов до нулевого размера с помощью truncate команды, выглядит следующим образом:
Например, чтобы очистить журнал доступа Nginx, вы должны использовать:
Очистить все файлы журнала
Со временем ваш диск может загромождаться большим количеством больших файлов журнала, занимающих много места на диске.
Следующая команда очистит файлы, заканчивающиеся на «.log» в /var/log каталоге:
Лучшим вариантом будет вращение, сжатие и удаление файлов журналов с помощью logrotate инструмента.
Вывод
Чтобы обрезать файл в Linux, используйте оператор перенаправления, > за которым следует имя файла.
Источник
Как вырезать файл в заданный размер под Linux?
Я хочу уменьшить размер файла с помощью грубой силы, то есть я не забочусь обо всем остальном, я просто хочу вырезать файл, скажем, наполовину, и отказаться от остальных.
Первое, что приходит на ум, — это обрезать . Я следую примеру на этой странице и делаю то же самое:
Но файл все еще имеет тот же размер:
Как я могу сделать эту работу?
5 ответов
Вы можете использовать команду truncate :
SIZE может быть задан как байты, KB, K, MB, M и т. д. Я предполагаю, что вы можете вычислить желаемый размер вручную; Если нет, вы можете использовать команду stat для получения информации о текущем размере файла.
открывает файл для чтения. Однако, чтобы обрезать файл, вам нужно его изменить, поэтому дескриптор файла только для чтения не будет работать. Вам нужно использовать режим «изменить» ( «+>» ).
Как побочный вопрос, он всегда поражает меня, когда люди позволяют системным вызовам терпеть неудачу, а затем спрашивают, что пошло не так. существенная часть диагностики проблемы — это сообщение об ошибке; даже если вы этого не понимаете, это облегчает жизнь тем, кого вы просите о помощи.
Ниже было бы несколько более полезно:
, хотя, по общему признанию, это означало бы только «недопустимый аргумент». Тем не менее, это полезная информация и вполне может привести вас к выводу, что открытый режим был неправильным (как и для меня).
Вы можете использовать хвост для сокращения до 100 000 байт
tail -c 100000 file> файл2
выходы -c, начинающиеся с байта 100000 этого файла в этом случае
заменяет исходный файл только что сгенерированным файлом
Ответ выше, цитируя truncate , хорош. dd также выполнит задание:
существует совершенно другой способ сделать это, используя bash, используя программу ed. следующий скрипт сохранит только последние 5000 строк всех файлов, находящихся в указанном каталоге. это может быть легко изменено, чтобы перебрать несколько каталогов, изменить количество строк и т. д.
Источник
Как отрезать первые n строк файла?
Как реализовать Subj в shell скрипте. Желательно без перенаправлений а то размер файла неинтересный.
Re: Как отрезать первые n строк файла?
Re: Re: Как отрезать первые n строк файла?
Хм. Видимо непонятно выразился. Отрезать и выкинуть. Удалить. BTW head без перенаправления не выйдет.
Re: Re: Re: Как отрезать первые n строк файла?
А выкинуть начало файла без копирования хвоста в новый файл всё равно не получится. IMHO.
Re: Re: Re: Как отрезать первые n строк файла?
tail -n $((`wc -l «$file» | awk ‘
Re: Как отрезать первые n строк файла?
> Желательно без перенаправлений а то размер файла неинтересный.
Первое, что приходит в голову с использованием направлений — cat file |tail -$[`cat file |wc -l` — N] > file (bash specific вариант).
Если без перенаправлений, то, ИМХО, есть два варианта — a) Поменять shell на что-нибудь другое b) Написать для этих целей маленькую программульку на С и вызывает её из скрипта
Re: Как отрезать первые n строк файла?
cat foo | sed ‘n,$p’ >foo
Re: Re: Re: Re: Как отрезать первые n строк файла?
Obidos (*) (07.10.2004 16:06:46):
> А выкинуть начало файла без копирования хвоста в новый файл всё равно не получится.
На Це легко извратиться, используя прямой доступ к файлу:
Источник
Как обрезать (очистить) файлы в 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.
Источник