GNU Parallel을 통한 추가 병렬화를 통해 현재 디렉터리의 각 디렉터리에 대해 별도의 7z 아카이브를 생성합니다.

GNU Parallel을 통한 추가 병렬화를 통해 현재 디렉터리의 각 디렉터리에 대해 별도의 7z 아카이브를 생성합니다.

내가 관심 있는 디렉터리에는 약 200개의 하위 디렉터리가 있습니다.

$ ls backup
201302
201607
201608
201609
201610
201701
201702
201705
201801
201802

xyz.7z각 디렉토리에 대해 7z 아카이브를 생성 하고 싶습니다 xyz.

cd $HOME/backup/
7z a "storage/nas/TBL/compressed_backups/$xyz.7z" "$xyz" -mmt=4

그래서 결국 나는 이 파일들을 다음 위치에 넣을 것입니다 storage/nas/TBL/compressed_backups:

201302.7z
201607.7z
201608.7z
201609.7z
201610.7z
201701.7z
201702.7z
201705.7z
201801.7z
201802.7z

parallel또한 .process 5개의 디렉터리를 한 번에 사용하고 싶습니다 . (나는 이 목적을 위한 충분한 컴퓨팅 능력을 가지고 있습니다)

parallel -j5 ::: 7z a "storage/nas/TBL/compressed_backups/$xyz.7z" "$xyz" -mmt=4

이 모든 것을 어떻게 마무리할 수 있나요?

답변1

다음 방법을 사용하십시오.

ls backup | parallel -j5 7z a -mmt=4 "storage/nas/TBL/compressed_backups/{}.7z" {} 
  • {}- 입력 라인. 대체 문자열은 입력 소스에서 읽은 전체 줄로 대체됩니다.

관련 정보