![터미널에서 이미지를 열려고 시도했지만 성공하지 못했습니다.](https://linux55.com/image/134559/%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC%20%EC%97%B4%EB%A0%A4%EA%B3%A0%20%EC%8B%9C%EB%8F%84%ED%96%88%EC%A7%80%EB%A7%8C%20%EC%84%B1%EA%B3%B5%ED%95%98%EC%A7%80%20%EB%AA%BB%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
터미널 내에서 특정 날짜와 시간의 이미지를 열고 싶습니다. 다음을 사용하여 이미지를 찾았습니다.
# 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
.)