다음과 같이하고 싶습니다.find 명령의 "exec"기능이 백그라운드에서 프로그램을 시작할 수 있습니까?
find . -iname "*Advanced*Linux*Program*" -exec kpdf {} & \;
가능합니까? 다른 유사한 방법을 사용할 수 있습니까?
다음과 같이하고 싶습니다.find 명령의 "exec"기능이 백그라운드에서 프로그램을 시작할 수 있습니까?
find . -iname "*Advanced*Linux*Program*" -exec kpdf {} & \;
가능합니까? 다른 유사한 방법을 사용할 수 있습니까?
, 당신이 입력 한대로 쉘이 존재하지 않는 명령 다음에 배경에서 잘못된 find
실행
find . -iname "*Advanced*Linux*Program*" -exec kpdf {} &
\;
,로 해석하기 때문에이 작동하지 않습니다 .
도 대신 (실제로는 배경 처리를 위해 &
을 처리하는 것입니다) 쉘에주는 주어진 find -exec
실제로 exec
의 인수 목록 때문에 작동하지 않습니다 탈출.
당신이것을 알고 일단의 문제가, 당신이해야 할 모든 쉘을 시작할있다가이 명령을주고 : 반면에
find . -iname "*Advanced*Linux*Program*" -exec sh -c '"$0" "[email protected]" &' kpdf {} \;
, 당신이 무엇을에게 주어진 ' 할 노력하고, 당신의 데스크탑 환경 관련으로 기본 프로그램에서 파일을 엽니 다
find ... -exec kfmclient exec {} \; # KDE
find ... -exec gnome-open {} \; # Gnome
find ... -exec xdg-open {} \; # any modern desktop
중 하나를 제안합니다.
당신의 목표는 단지 자신의 별도의 인스턴스에서 각 PDF를 표시 반대로, 당신의 plussed 변형으로
find . -iname "*Advanced*Linux*Program*" -exec kpdf {} \+ &
을 시도 할 수있는 다음 중 하나를보기 위해 하나의 PDF 파일을 닫을 필요가없는 경우 - exec는 xargs와 같은 커맨드 라인을 만들어서 찾은 모든 파일이 kpdf의 같은 인스턴스로 넘겨 질 것입니다. 결국 &은 전체 찾기에 영향을줍니다. 매우 많은 수의 파일이 발견되면 커맨드 라인이 너무 길어지기 때문에 일괄 적으로 열 수 있습니다. 그러나 시스템의 소비를 재조정하는 것과 관련하여 이것은 좋은 일일 수도 있습니다. ;)
kpdf는이 기능을 사용하기 위해 명령 줄에서 파일 목록을 가져올 수 있어야합니다. 직접 사용하지는 않기 때문에이 사실을 모릅니다.
시도하면 어떻게됩니까? –
당신은 '&'(즉 '\ &') – dsm
@dsm을 이스케이프 처리 할 수 있습니다. 작동하는 것처럼 보입니다. 그러나 {}에 의해 반환 된 파일 이름 중 일부에 공백과 명령 barfs가있는 또 다른 문제가 발생합니다. 그 주위에 쉬운 방법? – Duck