我正在运行一个命令,用于查找文件夹中的最新文件,然后 grep 内容以查找匹配的模式。这是显示我遇到的问题的命令流程。
root@backup /]# grep -w 'sucessfully completed.' "$(ls -1rt /var/log/folder | tail -n1)"
/bin/grep: <file_name>: No such file or directory
[root@backup /]# cd /var/log/folder/
[root@backup file_folder]# grep -w 'sucessfully completed.' "$(ls -1rt /var/log/folder | tail -n1)"
sucessfully completed.
在第一个命令中,它找到该文件,但随后说没有这样的文件或目录。诡异的。然后,正如您所看到的,我在实际文件夹中运行了相同的命令并且它起作用了。我的变量有绝对路径,那么这里发生了什么?我检查了任何可能干扰的 grep 别名,但没有发现。如果我在使用变量之外单独运行命令,它可以工作,并且可以在文件文件夹之外工作。 (正如我所期望的)
[root@backup /]# grep -w 'sucessfully completed' /var/log/folder/file
sucessfully completed.
答案1
第一部分中缺少文件的目录名,请尝试
grep -w 'sucessfully completed.' "/var/log/folder/$(ls -1rt /var/log/folder | tail -n1)"
不要尝试...除非 /var/log/folder/ 中没有目录
grep -w 'sucessfully completed.' "$(ls -1rt /var/log/folder/* | tail -n1)"