linux查找命令不必要的数据

Gre*_*zak 1 linux bash find

我正在尝试编写简单的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命令在所有情况下都不起作用(当搜索路径不同时.).

sam*_*hen 6

您必须使用-nameflag来指定要搜索的名称,并将模式括在引号中,以便bash *在传递给通配符之前不会对其执行自动扩展find:

 find . -name "zad*"
Run Code Online (Sandbox Code Playgroud)

此外,您不需要指定cwd路径 .

使用:

 find -name "zad*"
Run Code Online (Sandbox Code Playgroud)

应该工作得很好=)