1

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

folder_x/folder_y/file1.txt

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

locate -xxxx file1.txt

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

/folder_x/folder_y/

1 ответ1

0

Вы можете использовать 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .