Где я устанавливаю FollowSymLinks?

Для отфильтровывания человекочитаемых имен файлов можно использовать [: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' {} \;"тест.
  • В случае, если вышеупомянутый тест возвратил true, -print команда выполняется (т.е. название протестированного файла печатается).
5
16.05.2016, 04:31
1 ответ

Необходимо заглянуть /etc/apache2/sites-enabled/000-default (который является, вероятно, ссылкой на /etc/apache2/sites-available/default).

2
27.01.2020, 20:42
  • 1
    Спасибо за ответ. В тех файлах, FollowSymLinks кажется, включен. Но я получаю a Symbolic link not allowed or link target not accessible ошибка в моих журналах Apache (я обновил свой вопрос). Есть ли возможно другая причина, я получаю эту ошибку? –  Questioner 04.05.2013, 20:18
  • 2
    я должен признаться во мне часто, должен обращаться к эмпирическим решениям для открытия для Apache. Сначала я удостоверился бы, что можно получить доступ к каталогу, на который ссылка указывает на как пользователь, за которым работает апач (www-data?), для тестирования Вас может также связаться с чем-то как xyz каталог под /tmp с rwxrwxrwx полномочия. Если бы это не это, я затем попытался бы удалить AllowOverride None строка и делает +FollowSymLinks для /var/www/. –  Anthon 04.05.2013, 20:32
  • 3
    Спасибо за развитие. Я ввел по абсолютному адресу вокруг немного и нашел ответ здесь. Я должен был работать sudo chmod +x на каталогах в моем /home папка, которые содержат мои файлы HTML. Кажется, работает теперь. –  Questioner 04.05.2013, 20:54
  • 4
    Это действительно дало бы 'apache2-пользовательские' права доступа тем каталогам. –  Anthon 04.05.2013, 21:12

Теги

Похожие вопросы