Для отфильтровывания человекочитаемых имен файлов можно использовать [: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
команда выполняется (т.е. название протестированного файла печатается).Необходимо заглянуть /etc/apache2/sites-enabled/000-default
(который является, вероятно, ссылкой на /etc/apache2/sites-available/default
).
FollowSymLinks
кажется, включен. Но я получаю aSymbolic link not allowed or link target not accessible
ошибка в моих журналах Apache (я обновил свой вопрос). Есть ли возможно другая причина, я получаю эту ошибку? – Questioner 04.05.2013, 20:18www-data
?), для тестирования Вас может также связаться с чем-то какxyz
каталог под/tmp
сrwxrwxrwx
полномочия. Если бы это не это, я затем попытался бы удалитьAllowOverride None
строка и делает+FollowSymLinks
для/var/www/
. – Anthon 04.05.2013, 20:32sudo chmod +x
на каталогах в моем/home
папка, которые содержат мои файлы HTML. Кажется, работает теперь. – Questioner 04.05.2013, 20:54