주문하다
find /tmp -name 'core*' -type f -print0 | xargs -0
Linux에서는 잘 작동하지만 xargs -0
Solaris에서는 옵션이 허용되지 않습니다.
xargs
Solaris 10에 해당하는 옵션(?)은 무엇입니까?
두 번째 질문:
구문을 변경할 수 있습니까?
find /tmp -name 'core*' -type f -print0 | xargs -0
따라서 Linux와 Solaris 운영 체제 모두에서 작동합니다.
내 Solaris 10 시스템에서 이것을 시도하고 있습니다.
find /tmp -name 'core*' -type f -print0 | xargs -0
xargs: illegal option -- 0
xargs: Usage: xargs: [-t] [-p] [-e[eofstr]] [-E eofstr] [-I replstr] [-i[replstr]] [-L #] [-l[#]] [-n # [-x]] [-s size] [cmd [args ...]]
답변1
-print0
find나 xargs 모두 -0
POSIX가 아니며 모든 곳에서 사용 가능하지 않을 수 있습니다. 명령 +
종결자는 -exec
POSIX의 일부이며 동일한 작업을 수행합니다. 여기에 예가 있습니다.
find /tmp -type f -name 'core*' -exec rm {} +
답변2
GNU 확장 --print0
입니다 . 나는 (거의) 완전한 GNU 도구 모음을 Solaris에서 사용할 수 있다고 생각합니다(아마도 기본적으로 설치되지 않을 수 있는 -0
와 같은 이름으로 ).gfind
여기Solaris 환경을 더욱 즐겁게 만들기 위해 설치해야 하는 권장 도구 목록입니다.
답변3
xargs 대신 GNU Parallel을 사용하십시오.
find /tmp -name 'core*' -type f -print | parallel echo
GNU Parallel을 설치하는 데는 실제로 10초밖에 걸리지 않습니다.
wget pi.dk/3 -qO - | sh -x
자세히 알아보려면 소개 비디오를 시청하세요.https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1