Я пытаюсь использовать команду locate для поиска файлов в моей домашней папке, однако всякий раз, когда я пытаюсь выполнить это, я не получаю результатов:
locate -i -l 4 --regexp '^\/home\/jack\/[A-Za-z0-9\/\ ]*(My.)*$'
Я также пытался, ^\/home\/jack\/^(?!\.)[A-Za-z0-9\/\ ]*(My.)*$
но это также не дает результатов.
Файл, который я ищу, просто чтобы проверить это /home/jack/Music/Foals/My Number.flac
Я хотел бы исключить результаты поиска скрытых файлов из моего поиска.
(My.)*
должен делать? My.*$
работает. Вы должны сбежать ()
в основных РЗ.
--regexp
принимает основное регулярное выражение. Попробуйте перейти --regexp
на --regex
(нет p
). На странице руководства сказано, --regex
что расширенное сопоставление регулярных выражений.
locate
. Имеет ли смысл объединять-b
(т. Е. «Сопоставлять только базовое имя с указанными шаблонами») с путем в--regexp
? Почему вы избегаете/
с?