フォルダ内の最新のファイルを見つけて、一致するパターンの内容を特定するコマンドを実行しています。私が経験している問題を示すコマンドフローは次のとおりです。
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)"