Linux:Find 命令列出所有内容

标签 linux bash amazon-web-services amazon-ami

所以这是一个奇怪的事情。我正在使用 Linux AMI

[root@test /]# cat /etc/*release
NAME="Amazon Linux AMI"
VERSION="2018.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2018.03"
PRETTY_NAME="Amazon Linux AMI 2018.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2018.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2018.03

当我以普通用户身份执行 find 命令时,例如使用或不使用 sudo

sudo find . –type f –name "*.sh" –exec grep -n “*rds.amazonaws.com” {} +

它将列出根目录中的每个文件。然而,当我 sudo su 进入 root 时,该命令似乎有效?

最佳答案

在问题中,您混淆了 – 和 - 以及“和”。这些是不同的字符。对我来说,该命令给出了以下错误:

查找:未知谓词`-n'

find 将 –type–name–exec(以及之间的所有内容)解释为路径/文件名,然后偶然发现 -n .

请确保您输入的命令正确(关于连字符/破折号问题)

但是,您说过,命令是否有效取决于 sudosudo su 。因此,我现在假设这是一个复制粘贴问题,正如评论中所建议的那样。 (可能,它也可能是与区域设置相关的效果 - 对此不确定。)

检查路径是否正确。

查找 . -exec pwd {} + |排序-u

应该显示路径,find 命令正在执行(以及错误消息,由于虚假的命令行选项 - find 添加的路径 - 到 pwd)。

此外, grep 正则表达式似乎是错误的:“*rds”是假的,* 表示“前一个字符任意多次”,例如 grep "你好*o"。 -r 搜索包含世界 HeoHeloHelloHello 等的文件在。如果您想要搜索包含字符串 rds.amazonaws.com 的每个文件,无论 rds 之前是什么,那么您应该只使用搜索词 "rds\.amazonaws\.com\>"\. 因为您搜索文字点(而不是任何字符),"H.llo" 搜索 Hello 以及 Hallo(以及其他虚假单词,如 H5llo),以及 \> 因为 com 应该是单词的结尾,所以它与漫画不匹配。

如果这些都没有帮助,请根据您所做的具体操作添加列出的文件的一些结果来改进您的问题。

哦,欢迎来到 Stackoverflow,Nabil Aziz。

关于Linux:Find 命令列出所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55124429/

相关文章:

linux - 当我使用特殊字符时,为什么 tr 给我双字符?

java - 如何等待进程完成 Java AWS Lambda

amazon-web-services - 将自定义 CloudFormation 资源替换为官方资源

amazon-web-services - 创建/更新实例时禁用 AWS RDS 备份?

linux - 默认情况下,当我们尝试从中创建 AMI 时,实例会重新启动吗?

linux - AWS lightSail 在通过 letEncrypt 获取 SSL 证书时出现问题

python - 如何让python脚本在系统启动15分钟后运行?

linux - CentOS 6.3 上 SFTP 目录中的 .bashrc、.bash_profile 和 .bash_logout 文件

macos - Mac OSX 获取 USB 供应商 ID 和产品 ID

linux - 重用弹性 IP 时出现 AWS Instance SSH 连接问题