병렬 tar [중복]

병렬 tar [중복]

수백 개의 하위 디렉터리가 있는 디렉터리가 있습니다. 각 하위 디렉토리를 tar 및 압축하고 결과 파일의 이름을 지정하고 싶습니다 <currentDirName>.tar.bz2.

나는 이미 이 작업을 수행했습니다.

find ./dir -type f -print0 | xargs -0 -n1 -P100 bunzip2

한 번에 100개의 파일을 압축 해제합니다. (나는 해양 모델링을 하기 때문에 내 컴퓨터는 쿼드 코어가 많아서 매우 강력합니다.) 압축된 아카이브 파일의 동적인 이름 지정에 대한 정보를 포함하면서 위와 같은 작업을 수행하는 방법을 모르겠습니다. 나는 모든 사람을 위해 그것을하고 싶지 않습니다 tar cfj dir.tar.bz2 dir.

위의 Bunzip 명령처럼 한 번에 100개 이상을 수행할 수 있도록 find 또는 병렬을 통해 자동으로 각 디렉토리 이름을 tar 파일 이름으로 사용할 수 있습니까?

귀하의 의견에 감사드립니다.

....베드로

답변1

다음 bash줄은 대략적으로 설명하는 작업을 수행하여 각 디렉토리를 자체 tarball에 넣습니다.

for d in dir/*/; do { tar -cj "$d" > "${d%/}.tar.bz2" ; } & done ; while [ "$(jobs)" ] ; do fg &>/dev/null ; done ; echo done

관련 정보