例如,我希望查找名为" Makefile"的所有文件的当前目录(不包括./bin),作为参数和grep"库",如下所示:
find . ! -path "./build" -name "*Makefile"|xargs grep library
我不是每次都输入所有这些,我只是想做一个"别名"有2个参数,如:
myfind "*Makefile" "library"
myfind的find参数是fo" find"命令为" name"," grep"的第二个参数命令,我也希望星号" *"可以作为参数的一部分传递,而不进行解析。
如何写这样的别名?
答案 0 :(得分:2)
使用功能:
Generic gen = new Generic(1);
MyClass myClass = gen.get_a(new MyClass());
答案 1 :(得分:1)
你不能用别名做到这一点。你可以写一个小脚本,例如。
#!/bin/bash
find . ! -path "./build" -name "$1"|xargs grep $2
将其保存为路径中的myfind
,并确保删除别名。
答案 2 :(得分:1)
你使用了linux标签,所以我假设你使用的是GNU grep。 GNU grep(至少grep (GNU grep) 2.25
)支持以下选项,使您的任务变得非常简单。让我引用grep --help
:
-r, --recursive like --directories=recurse
--include=FILE_PATTERN search only files that match FILE_PATTERN
--exclude=FILE_PATTERN skip files and directories matching FILE_PATTERN
--exclude-from=FILE skip files matching any file pattern from FILE
--exclude-dir=PATTERN directories that match PATTERN will be skipped.
所以你的任务可以通过以下方式完成:
grep -r --include=Makefile --exclude-dir=build library
当然,您可以创建一个shell脚本或函数来进一步简化它。