다른 것 외에도 날짜 이름을 딴 폴더가 있는 폴더가 있습니다(예: 20110908 20110909 등). 매일 밤 나는 해당 날짜 마스크(201*일 수 있음)와 일치하는 모든 폴더를 확인하고 비슷한 이름의 bzip2 아카이브가 아직 없는 폴더를 bzip2 검사하는 도구를 실행하고 싶습니다. 그리고 이상적으로는 bzip2를 수행한 후 폴더 내용이 변경되면 해당 내용을 다시 bzip2하고 싶습니다.
나에게 도움이 될 만한 도구가 있나요?
답변1
명령줄 버전7-Zip여기서 당신을 도울 수 있습니다. 작업 스케줄러를 사용하여 예약하는 배치 파일을 만들 수 있습니다. 7-Zip의 업데이트 스위치 "u"를 사용하고 싶을 것입니다. 다음과 같은 스크립트가 트릭을 수행할 수 있습니다.
for /f %%F IN ('dir /b 201*') (
REM Extract
7z e %F.tar.bz2 %F.tar
REM Update archive
7z u %F.tar -uq2r2y2z2w2 %F
REM Compress
7z a %F.tar.bz2 %F.tar
REM Delete tar
del %F.tar
)
zip 또는 7z 형식을 사용해도 괜찮다면 "추출 후 재압축" 단계를 건너뛰고 간단히 업데이트 단계를 실행할 수 있습니다.
답변2
나는 bzip2.exe
Windows용 Python을 사용하기로 결정했습니다.
#!/usr/bin/env python
import os
import subprocess
rootdir = "C:/XXX/"
for root, subFolders, files in os.walk(rootdir):
for file in files:
filename = os.path.join(root,file)
if(os.path.splitext(filename)[1] != ".bz2"):
print("Compressing "+filename+"...")
process=subprocess.Popen('bzip2.exe %s'%(filename),shell=True)
process.wait()