我正在尝试编写简单的 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~
为什么它会列出我文件夹中的所有文件(在文件名前加上 ./
),然后我得到正确的查找结果。有没有办法删除那个 ./
输出?使用 sed 命令并非在所有情况下都有效(当搜索路径与 .
不同时)。
最佳答案
您必须使用 -name
标志来指定要搜索的名称,并将模式括在引号中,这样 bash 就不会对通配符 *
执行自动扩展在传递给 find
之前:
find . -name "zad*"
此外,您不需要使用 指定 cwd 路径。
使用:
find -name "zad*"
应该工作得很好 =)
关于linux find命令不必要的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13100991/