Файловые возможности устанавливаются в исполняемом файле с помощью setcap .
Но другие возможности могут быть унаследованы от процесса запуска. Это описано на справочной странице возможностей Linux :
.
Inheritable
This is a set of capabilities preserved across an execve(2).
Inheritable capabilities remain inheritable when executing any
program, and inheritable capabilities are added to the
permitted set when executing a program that has the
corresponding bits set in the file inheritable set.
Если файлы представляют собой текст ASCII, вы можете использовать split -b100
. Это означает 100 байтов, что всегда составляет 100 символов ASCII.
Не совсем то, что вы просили, но можно адаптировать.
Это обрабатывает все файлы с суффиксом .txt
в текущем каталоге. Для каждого файла (, например.Cairo.txt
):
tr
для замены всего белого пробела -новой строкой -, получая один простой -на -строковый список слов. fmt
для упаковки целого числа слов в строки до заданной длины. split
, чтобы превратить эти строки в серию файлов с именами Cairo.seq.0000
и выше. Для удобства тестирования я использовал ширину 60 и строки 30, и мои входные данные были тремя простыми -текстовыми справочными страницами, сгенерированными с помощью этого:
for cmd in tr fmt split; do man $cmd | col -b > $cmd.txt; done
Это скрипт:
#! /bin/bash
for fn in./*.txt; do
Base="${fn%.txt}"
tr -s '[:space:]' '\n' < "${fn}" |
fmt -60 |
split -a 4 -d -l 30 - "./${Base}.seq."
done
Ширина линии равна "60" в команде fmt. Так что вы можете сделать это 100.
Количество строк в выходном файле равно «30» в команде разделения. Казалось, вы хотели, чтобы это была 1 строка в файле. Тем не менее, вы получите много таких маленьких файлов. Файл размером 100 -байт по-прежнему занимает блок размером 4096 -байт.
Вы можете видеть, что количество слов не изменилось, но количество пробелов уменьшилось, а строк стало меньше.
paul $ wc *
29 214 1561 fmt.seq.0000
61 214 1832 fmt.txt
30 260 1665 split.seq.0000
15 101 780 split.seq.0001
94 361 2892 split.txt
30 263 1724 tr.seq.0000
18 126 929 tr.seq.0001
124 389 3282 tr.txt
410 1955 14821 total
paul $