Мне нужно использовать, find
чтобы найти файл, соответствующий шаблону регулярных выражений, filename.extension
а не по умолчанию, который соответствует /path/to/filename.extension
.
Например:
/folder
|--a-love-song.ogg
|--a-jazz-song.ogg
+--love-songs
+--a-blues-song.ogg
И я хочу найти в /folder
его подкаталогах файлы с .*love.*
именем файла:
debian@debian:~$ find folder -regex ".*love.*"
folder/a-love-song.ogg
folder/love-songs # Shouldn't be returned
folder/love-songs/a-blues-song.ogg # Shouldn't be returned
Я прочитал справочную страницу и понял, что есть опция -name
, которая ищет только имя файла, но, похоже, не разрешает регулярное выражение и -name -regex
не работает.
Я пытался использовать регулярные выражения, чтобы игнорировать путь:
debian@debian:~$ find folder -regex "\/.*love.*$"
Но это ничего не вернуло. Конечно, ls | grep
будет работать, но он не возвращает путь к файлу, который мне нужен, чтобы узнать, где находится файл.
источник
dir/love-songs
(или любой листовой каталог сlove
в нем). Я не уверен, возможно ли то, что @Alex желает только вfind
одиночку.