Как использовать locate для поиска родительской папки файла?

255
phong

Например, у меня есть этот файл в этой папке

folder_x/folder_y/file1.txt 

Я хочу сделать что-то вроде этого:

locate -xxxx file1.txt

и получить это

/folder_x/folder_y/ 
1

1 ответ на вопрос

0
Hastur

Вы можете использовать dirname, который извлекает имя родительской папки из полного имени файла.

Например, если это один файл,

 dirname $(locate myuniquefile) 

В случае нескольких ответов вы можете обработать каждую отдельную запись ...
например, используя awk для построения вашей команды и передавая результаты в оболочку bash.

locate \.mp3 | awk '' | /bin/bash 

В современном bash вы можете использовать и другую конструкцию в качестве строки здесь :

/bin/bash <<< $(locate \.mp3 | awk '' ) 

Примечание: по соображениям безопасности ( троянские кони ) рекомендуется использовать полный путь для вызова команд: так лучше, /bin/bashчем просто bash.

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