터미널 내에서 특정 날짜와 시간의 이미지를 열고 싶습니다. 다음을 사용하여 이미지를 찾았습니다.
# 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
.)