shell - 在unix中使用 "find"命令时出错

标签 shell unix

我只是尝试下面的代码,但它不起作用..请建议更正此代码..

echo abc.txt | while read name; do find . -name $name; done

输出成功:./rak/abc.txt

echo 'abc.txt pqr.txt' | while read name; do find . -name $name; done

输出错误:查找:0652-009 缺少连词

echo "abc.txt pqr.txt" | while read name; do find . -name $name; done

输出错误:查找:0652-009 缺少连词

同样的错误

echo "abc.txt" "pqr.txt" | while read name; do find . -name $name; done
echo 'abc.txt' 'pqr.txt' | while read name; do find . -name $name; done

请建议如何解决此问题...

最佳答案

问题是多个条目作为一行发送到管道中,读取将两个字符串拾取到 name 中,然后处理包含这两个字符串的 $name字符串。

你应该使用类似的东西:

echo -e "abc.txt\npqr.txt" | while read name; do find . -name $name; done

即用换行符分隔项目。

您应该尝试使用 echo "'$name'" 而不是 find 来调试此问题,它会提示发生了什么。

此外,我会在查找中使用 $name 进行引用,就好像文件名的名称中应该有空格一样,那么您将得到与您相同的错误消息原来经历过。

关于shell - 在unix中使用 "find"命令时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308436/

相关文章:

linux - tr "[1-9]" "[' 0 1'-' 0 9']"无法正常工作

c++ - 处理客户端连接的最有效方式(套接字编程)

c - sigaction - 为什么我们不必重置处理程序?

c++ - 自 1970 年以来,如何获取 C++ 中的当前时间戳?

shell - adb Push 没有任何打印

linux - 如何使用 bash shell 处理目录中的文件

linux - 使 Bash 模块化

linux命令连接多个文件,内容由文件名分隔?

linux - 不带 sudo 挂载卸载

linux - 链接两个参数 - Shell 脚本