답변:
OS X에서 :
ls file_* | xargs -J {} mv {} temp/
Linux에서 :
ls file_* | xargs -i {} mv {} temp/
/
끝에는 선택 사항입니다. 원하는 경우 포함 할 수 있지만 필요하지는 않습니다.
-i
(또는 -J
)는 인수로 끝나는 대신 들어오는 인수로 대체 될 토큰을 지정합니다. man xargs
-i{}
공백없이. 또는 -I {}
.
-i
대체되고 있습니다. ls file_* | xargs -iFOO mv FOO temp/
정확히 동일하게 작동합니다.
@ user1953864에서 제안한대로 { -i
, -J
}는 들어오는 인수로 대체 될 토큰을 지정합니다.
예를 들면 ls
다음과 같습니다.
something.java exampleModel.java NewsQueryImpl.java readme someDirectory/
그런 다음 모든 Java 파일을 someDirectory 폴더로 이동하는 방법 xargs
은 다음과 같습니다.
리눅스에서
ls *.java | xargs -i mv {} someDirectory/
MacOS에서
ls *.java | xargs -J mv {} someDirectory
다른 해결책은 다음과 같습니다.
for f in file_* ; do
mv $f temp/$f
done
단점은 mv
각 파일에 대해 새로운 프로세스를 분기한다는 것 입니다.
xargs -n10
예를 들어)