端末内で特定の日時の画像を開きたいです。以下を使って画像を見つけました。
# 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-open
4 つの引数./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 {} \;
find
grep
(厳密に言うと、パターンは日付と時刻をこの順序で強制し、時間もファイル名自体の一部である必要があるため、+組み合わせと同じではありません。find -name -name '*2018-05-24*' | grep 18-46-31
また一致します./18-46-31/2018-05-24.png
。)