有没有办法覆盖Unix终端查找命令?

时间:2015-02-18 00:04:20

标签: unix terminal find command

例如:查找搜索txt文件的命令

find . -iname "*.txt" 

我想在find中创建.bash_profile命令的别名,以便在获取.bash_profile时我应该能够传递任何参数来查找命令来搜索文件类型:

find txt find pdf find doc  

我尝试使用以下语法将find命令覆盖为:

find ./ -iname "$1"

其中$ 1可以是任何参数文件类型。

3 个答案:

答案 0 :(得分:1)

为什么不写一个bash脚本?

#!/bin/sh

for var in "$@"; do
    find . -iname "*.$var"
done

您可以将其存储在文件中,使其可执行(chmod +x find-by-type),然后将其复制到PATH变量中的目录。执行就像调用一样简单:

[user@localhost ~]$ find-by-type pdf txt doc

答案 1 :(得分:1)

在您的主目录中打开您的.bashrc文件(通常隐藏按 Ctrl + H 查看)并附加此行。

alias finder="find . -type f -regex "

注意我使用-regex来帮助您匹配文件扩展名模式。

然后在shell中执行:

source .bashrc

然后,使用您的文件名/扩展名调用名为finder的别名。

例如:

finder '*\(txt\|py\|pdf\|lst\)'

答案 2 :(得分:0)

感谢您的建议。我尝试过在.bash_profile中编写函数:

findFile(){
    find $1 -iname "*.$2"
}

来源.bash_profile

export -f findFile

findFile ~/Desktop txt