하위 디렉토리의 파일을 비밀번호로 재귀적으로 압축한 다음 bash 파일에서 압축되지 않은 파일을 삭제해야 합니다.
zip 파일과 기타 파일이 있습니다. zip 파일을 다시 압축하고 싶지 않습니다. 압축되지 않은 파일만 압축하고 파일 이름을 압축된 파일 이름으로 유지하고 싶습니다.
예를 들어 파일 이름이 aaa10.dat
zip 파일 이름 인 경우 aaa10.zip
비밀번호로 압축해야 합니다.
압축한 후 압축되지 않은 파일을 삭제하고 싶습니다.
[디렉터리 구조]
dir1/aaa1.dat ... aaa10.dat
dir1/dir2/dir2_subdir1/aaa.zip, aaa.dat
dir1/dir3/dir3_subdir1/aaa1.dat ... aaa10.dat
dir1/dir3/dir3_subdir2/aaa1.dat ... aaa20.dat, aaa1.zip ... aaa10.zip
dir1/dir3/dir3_subdir2/dir3_subdir2_subdir1/aaa1.dat ... aaa20.dat, aaa1.zip ... aaa10.zip
답변1
find
모든 ".dat" 파일을 찾아 압축하는 상당히 복잡한 명령을 사용하여 이 작업을 수행할 수 있습니다 . 그러나 zip 부분을 별도의 스크립트에 넣는 것이 표시하기가 훨씬 쉽습니다.
find . -name '*.dat' -exec my-script {} \;
그리고 my-script
(당신의 에 있어야 함 PATH
):
#!/bin/sh
zip -P my-password -m $(dirname $1)/$(basename $1 .dat).zip $1
그리고my-password
물론 당신이 선택한 것은 무엇이든 상관없습니다.