Например, у меня есть этот файл в этой папке
folder_x/folder_y/file1.txt
Я хочу сделать что-то вроде этого:
locate -xxxx file1.txt
и получить это
/folder_x/folder_y/
Вы можете использовать dirname, который извлекает имя родительской папки из полного имени файла.
Например, если это один файл,
dirname $(locate myuniquefile)
В случае нескольких ответов вы можете обработать каждую запись ...
например, с помощью awk для сборки вашей команды и передачи вывода в оболочку bash.
locate \.mp3 | awk '{print "dirname \""$0"\""}' | /bin/bash
В современном bash вы можете использовать и другую конструкцию в качестве строки здесь :
/bin/bash <<< $(locate \.mp3 | awk '{print "dirname \""$0"\""}' )
Примечание: по соображениям безопасности (троянские кони) рекомендуется использовать полный путь для вызова команд: так что лучше /bin/bash
чем просто bash
.