如何使用定位来搜索文件的父文件夹?

如何使用定位来搜索文件的父文件夹?

例如我在这个文件夹中有这个文件

folder_x/folder_y/file1.txt

我想做这样的事:

locate -xxxx file1.txt

并得到这个

/folder_x/folder_y/

答案1

您可以使用目录名从完整文件名中提取父文件夹的名称。

例如,如果是单个文件,

 dirname $(locate myuniquefile)

如果有多个答案,您可以处理每个单独的条目...
例如使用awk构建命令并将输出传送到 bash shell。

locate \.mp3  | awk '{print "dirname \""$0"\""}'  | /bin/bash 

现代的bash 你也可以使用其他构造这里是字符串一:

/bin/bash <<< $(locate \.mp3  | awk '{print "dirname \""$0"\""}' ) 

注意:出于安全原因(特洛伊木马)使用完整路径来调用命令是一种很好的做法:所以/bin/bash比简单地说更好bash

相关内容