端末で画像を開こうとしましたが、成功しませんでした。

端末で画像を開こうとしましたが、成功しませんでした。

端末内で特定の日時の画像を開きたいです。以下を使って画像を見つけました。

# find . -type f -name '*2018-05-24*' | grep 18-46-31
./Screenshot from 2018-05-24 18-46-31.png

これで、上記の出力の端末でこの画像を開こうとしていますが、以下のコマンドが機能しないようです。

# find . -type f -name '*2018-05-24*' | grep '18-46-31' | xargs xdg-open

私は何が間違っていましたか?私はgrepの出力をxdg-openのオプションとして渡すためにxargs(おそらく間違ったxargsを使用している可能性があります)を使用していますが、次のような結果が得られます。

xdg-open: unexpected argument 'from'
Try 'xdg-open --help' for more information.

答え1

xargs、デフォルトでは、入力は次のように分割されます。どの空白なので最後にxdg-open4 つの引数./Screenshot, from, で2018-05-24実行されます18-46-31.png。 GNU xargsを使用して改行文字を分割するために使用できますが、以下を使用してすべてのxargs -d '\n'操作を実行できますfind

find . -type f -name '*2018-05-24*18-46-31*' -exec xdg-open {} \;

findgrep(厳密に言うと、パターンは日付と時刻をこの順序で強制し、時間もファイル名自体の一部である必要があるため、+組み合わせと同じではありません。find -name -name '*2018-05-24*' | grep 18-46-31また一致します./18-46-31/2018-05-24.png。)

関連情報