Bash查找文件和显示路径功能



我正在我的.bashrc文件中编写一个函数,它可以帮助我根据作为参数传递给函数的字符串查找文件:

# ~/.bashrc
function search {
    find . -iname "*$1*" -printf "%fn"
}

这个功能很好。它会打印出我所在的目录下具有给定字符串的所有文件,以及所有子目录中具有相同给定字符串的所有文件。只有它只是打印出每个文件而不是它的路径。

例如,如果我有一个包含一些子文件夹和文件的文件夹,如果它们位于任何子文件夹下,那么如果它会打印出每个文件的路径,那么这个函数会更有帮助。

F.ex. 如果我有一个名为 Folder/ 的文件夹和几个名为 whatever_num 并运行search thisandthat的子文件夹,则会吐出一个如下所示的列表:

$ search thisandthat
some-file-containing-thisandthat-in-its-filename.ext
whatever_1/path/to/some-file-containing-thisandthat-in-its-filename.ext
whatever_2/path/to/some-file-containing-thisandthat-in-its-filename.ext

所以我的任务是:如何修改我的搜索功能,以便它打印出我可能正在搜索的文件的路径?

谢谢!

function search {
    find `pwd` -iname "*$1*" 
}

将查找行更改为:

find . -iname "*$1*" -printf "$(pwd)/%Pn"

感谢@JKB和@acro444。他们的回答帮助我修改了我的搜索功能。我正在发布我的答案,因为我决定采用与他们发布时略有不同的解决方案,但这要归功于他们的贡献:

# ~/.bashrc
function search {
    find . -iname "*$1*" -printf "%Pn"
}

我这样做是因为我不在乎总是在路径的其余部分前面看到/home/myusername/...。我知道我在我的/home/username/somefolder目录中,并且看到可能出现的每个文件总是/home/username/.....,我认为这是太多的"噪音",而且没有必要。

再次感谢您的帮助!

干杯!

相关内容

  • 没有找到相关文章

最新更新