Команды pvdisplay
, vgdisplay
и lvdisplay
покажет Вам настроенные физические тома, группы объема и логические тома соответственно подсистемы LVM на машине. mdadm
даст Вам информацию о настроенной подсистеме набега.
Для отфильтровывания человекочитаемых имен файлов можно использовать [:print:]
(печатаемое) имя класса символов. Вы найдете больше о таких классах в руководстве для grep
.
find . -type f -size 1033c -name "[[:print:]]*" ! -executable
На долгом размышлении "человекочитаемое" требование могло бы относиться к содержанию файла вместо его имени. Другими словами, Вы искали бы текстовые файлы. Это немного более хитро. Как @D_Bye предложенный в комментарии, необходимо затем использовать file
команда для определения типа контента файла. Но это не была бы хорошая идея работать file
после канала, потому что это усложнило бы задачу отображения имени файла. Вот то, что я предлагаю:
find . -type f -size 1033c ! -executable -exec sh -c 'file -b $0 | grep -q text' {} \; -print
Это кратко как file
- работы части:
-exec
предикат выполняется sh -c 'file -b $0 | grep -q text' FILENAME
для каждого FILENAME
это удовлетворяет все предыдущие условия (тип, размер, неисполняемый файл).sh
) запускает этот короткий скрипт: file -b $0 | grep -q text
, замена $0
с именем файла.file
программа определяет тип контента каждого файла и производит эту информацию. -b
опция предотвращает печать названия каждого протестированного файла.grep
фильтрует вывод, прибывающий из file
программа, ища строки, содержащие "текст". (Лично убедитесь, как типичный вывод file
команда похожа.)grep
не производит фильтрованный текст, потому что он имеет -q
(тихая) опция дана. То, что это делает, является просто изменением его статус выхода к также 0
(который представляет "верный" - фильтрованный текст был найден) или 1 (значение "ошибки" - текст "текст" не появился в выводе от file
).grep
передается далее sh
кому: find
и действия как конечный результат целого"-exec sh -c 'file $0 | grep -q text' {} \;
"тест.-print
команда выполняется (т.е. название протестированного файла печатается).find . -type f -readable -size 1033c ! -executable
Обратите внимание, что я использовал c
вместо b
для размера файла. b
для 512-байтовых блоков. c
для фактических байтов.
find
кому: file
.
– D_Bye
16.07.2012, 14:20
все, что я написал, было:
find -size 1033c ! -executable
и получил файл. Видимо, читабельная часть должна была вас сбить с толку.
Думаю, для игры правильный синтаксис:
file./*
Вы получаете ответ со списком того, из чего состоит каждый файл. Это сработало очень хорошо для того, чего вы пытаетесь достичь в игре Bandit. Настоящим поворотным моментом для этой задачи является то, что каждый файл начинается с дефиса-().
Я думаю, что это лучший фактический ответ, который охватывает все 3 условия
find inhere/ -type f -size 1033c ! -executable |xargs file | grep text
Но, как говорили многие люди, исполняемый файл и удобочитаемость должны были сбить нас с толку, поэтому с помощью
find inhere/ -type f -size 1033c
вполне достаточно !