Исключая скрытые файлы в располагаются

У нас есть совместное использование NAS Ubuntu SMB и Netatalk с некоторыми Mac, и я часто использую locate найти мои файлы. К сожалению, начиная с установки Netatalk это записало тонны .AppleDouble файлы кэша для совместного использования с AFP быстрее (я принимаю), и мой locate печать вся та информация. Я постоянно использую cp на файлах только для нахождения я скопировал бесполезный скрытый файл на несчастном случае.

Я использовал locate -i filename | fgrep -v ".AppleDouble" | fgrep -v "._" для удаления тех скрытых файлов но я хотел бы изменить мой bashrc таким способом, которым это - более или менее значение по умолчанию.

Что самый эффективный путь состоит в том, чтобы исключить скрытые файлы из того, что определяет местоположение печати? С regex? Прямо сейчас я записал бы сценарий, который передает аргумент для определения местоположения и каналы к grep как показано, но если существует более легкий путь, сообщите мне.

4
задан 23 February 2015 в 19:58

1 ответ

Для исключения скрытых файлов при использовании определяют местоположение, пробуют это:

locate -i --regex "^/absolute/path/to/the/directory/[^\.]+"

, Если каталог содержит файлы как .hidden, ..hidden, ...hiden, они будут исключены также. Если Вы просто хотите исключить [только 117], удалите + из конца:

locate -i --regex "^/absolute/path/to/the/directory/[^\.]"

или просто (расширил regexp, не нужно также):

locate -ir "^/absolute/path/to/the/directory/[^\.]"

РЕДАКТИРОВАНИЕ: После редактирования вопроса, целое значение вопроса отличается теперь, и мой первоначальный ответ не корректен в измененном контексте. Работайте следующее для исключения всех скрытых файлов из Вывода locate (учитывая имя файла не содержит /):

locate -i "file_name" | egrep -v "/(\.)+[^/]+$"
4
ответ дан 1 December 2019 в 09:49

Другие вопросы по тегам:

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