작은 파일이 많이(약 500만 개) 있는데, 각각 gzip
.tar.gz
- 파일 압축을 풀고 다시 압축할 공간이 부족해서
tar.gz
해야겠네요제자리에. 축소 비율은 약 15:1로 꽤 좋습니다. - CPU 시간을 많이 사용할 수 없기 때문에 재압축하는 데 시간이 오래 걸릴 수 있습니다.
- 파일을 다른 곳으로 이동하거나 삭제할 수 없습니다.중요한 안전 이유
그래서. 어떡해?
답변1
아카이브를 압축할 필요는 없으며 이미 압축된 파일을 아카이브에 추가하기만 하면 됩니다.
tar -cf archive.tar directory_with_compressed_files
답변2
적은 수의 파일을 저장할 공간이 충분하다면 청크로 보관하거나 원하는 경우 자동화할 수도 있습니다. 파일이 다음과 같이 저장되어 있다고 가정합니다.
.
+-dir0000
| +-file0000.gz
| +-file0001.gz
| [...]
+-dir0001
| +-file1000.gz
| +-file1001.gz
[...]
각 디렉터리에 대해 다음을 실행합니다(파일의 공유 루트에서).
tar rf /path/to/archive_name.tar dir_name
rm -r dir_name
이 작업을 자동으로 수행하는 데 동의하는 경우(시도했는데 효과가 있었지만 find
무시할 수 있는 오류 메시지가 표시됨) 다음을 시도해 보세요.
find * -maxdepth 1 -type d -exec sh -c "tar rf /path/to/archive_name '{}' && rm -r '{}'" \;
(언제나 그렇듯이 먼저 테스트 디렉토리 구조에서 이것을 시도하여 원하는 대로 작동하는지 확인할 수 있습니다!)
귀하의 디렉토리에 공백이 있는 경우를 대비해 인용했습니다 {}
. 플랫 파일 구조 가 있는 경우 -type d
. 우선 아카이브를 여러 부분으로 나누세요!+
-exec
find
결국 모든 파일은 아카이브로 이동됩니다. 느리지만 할 수 있습니다.