Поиск произвольных файлов, но список совпадений в результатах только один раз

Всегда начинайте с устранения неполадок.

Эта команда покажет вам причину ошибки:

В CentOS с Apache используйте

apachectl -t

В Ubuntu с Apache2 используйте

apache2ctl -t

Обычно это может быть очень незначительная ошибка (s ), исправьте ошибку, перезапустите веб-сервер apache и наслаждайтесь.

Удачного кодирования.

3
29.11.2019, 12:30
3 ответа

Похоже, вы хотите искать flatpakтолько в имени файла (, а не в других компонентах пути ), поэтому вы можете использовать опцию -b/ --basename:

Так:

locate -ib flatpak

Другим подходом может быть использование опции -r/ --regexи запись:

locate -ir 'flapak[^/]*$'

То есть за flatpakследует любое количество символов, кроме /, за которым следует конец пути к файлу.

Однако это может привести к пропуску имен файлов, содержащих не -символы (в текущей локали )после flatpak.

3
27.01.2020, 21:11

Вы можете использовать sedдля удаления всего после шаблона flatpak, затем вы можете отсортировать вывод и печатать только уникальные строки:

locate -i flatpak | sed -E -e 's/(flatpak\/?).*/\1/i' -e 's/\/$//' | sort | uniq
3
27.01.2020, 21:11

Использовать findдля просмотра всей файловой системы в поисках имен файлов, содержащих строку flatpackв своих именах:

find / -name '*flatpack*'

Если ваша реализация findимеет -iname, вы можете использовать ее вместо -nameдля поиска без учета регистра. Если вы хотите искать только обычные файлы, то также используйте-type f(ваш пример включает в себя поиск файлов любого типа, поэтому вам, вероятно, следует пропустить это):

find / -type f -iname '*flatpack*'

Это, скорее всего, приведет к ряду ошибок «Отказано в доступе», поскольку findпытается спуститься в каталоги, к которым у вас нет доступа. Чтобы избежать этого, вы могли бы использовать GNU findвот так:

find / ! -readable -prune -o -iname '*flatpack*' -print

Это было бы медленнее, чем использование locate -ib flatpack, но всегда приводило бы к результатам от -до -. Данные, которые использует locate, собираются ежедневно или еженедельно и не включают в себя пути, которые не могут быть прочитаны всеми пользователями.

2
27.01.2020, 21:11

Теги

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