bash 명령 줄에서 이름이 내 시스템의 특정 패턴과 일치하는 모든 zip 파일을 찾은 다음 내 디렉토리에서 압축을 해제해야합니다.xargs oneliner 파일을 압축 해제합니다.
압축 해제 된 파일을 하위 폴더로 정리하고 싶습니다. 전체 경로를 사용하지 않고 원래 zip 파일 이름을 기반으로 사용자 지정 명명 규칙을 사용하여 하위 폴더 이름을 선택하고 싶습니다.
주기에 대해 이 작동한다는 것을 알고 있습니다. 어쨌든 xargs를 배우는 중이므로 xargs oneliner에서 동일한 작업을 수행 할 수 있는지 알고 싶습니다. 비슷한 :
locate -r "<zipped files regex>" | xargs -i -t "foldername=$(echo {} | sed 's/.*\///'); mkdir -p $folderName; unzip {} -d $folderName"
나는이 메시지 :
foldername={}; mkdir -p ; unzip {} -d
xargs: foldername={}; mkdir -p ; unzip {} -d : No such file or directory
당신이 내가 그것을 작동하도록 도와 드릴까요?
감사합니다.
현재 명령의 문제점은 무엇입니까? 또한 재생성을 위해''예제를 제공 할 수 있습니까? –
Xargs는 모든 것을 하나의 단일 zip 명령으로 전달하며 zip은 한 번에 하나의 zip 파일 만 처리 할 수 있으므로 for 루프 또는'find ... -exec'를 사용해야합니다. –
@SamLaine 좋은 지적이지만'xargs'는'-n' ('--max-args') 옵션을 가지고 있습니다. 여전히'-exec'와 함께'find '를 사용하는 것이 더 간단합니다. –