我正在尝试编写简单的bash脚本而且我遇到了find
命令.
当我输入时find . zad*
,我得到如下输出:
.
./lab2.sh~
./#zad2.sh#
./zad2.sh~
./zad1a.sh
./zad2.sh
./lab2.sh
./Azad2.sh~
./cdlinux.ftp.log
./Azad2.sh
./zad1a.sh~
./zad1.sh
./cdlinux.www.log
./zad1.sh~
zad1a.sh
zad1a.sh~
zad1.sh
zad1.sh~
zad2.sh
zad2.sh~
Run Code Online (Sandbox Code Playgroud)
为什么它列出我文件夹中的所有文件(./
文件名之前),然后我得到正确的查找结果.有没有办法删除该./
输出?使用sed命令在所有情况下都不起作用(当搜索路径不同时.
).
您必须使用-name
flag来指定要搜索的名称,并将模式括在引号中,以便bash *
在传递给通配符之前不会对其执行自动扩展find
:
find . -name "zad*"
Run Code Online (Sandbox Code Playgroud)
此外,您不需要指定cwd路径 .
使用:
find -name "zad*"
Run Code Online (Sandbox Code Playgroud)
应该工作得很好=)