원본 폴더를 떠나지 않고 원본 폴더를 삭제하지 않고 폴더를 압축하는 방법

원본 폴더를 떠나지 않고 원본 폴더를 삭제하지 않고 폴더를 압축하는 방법

SQL 디렉터리에는 tmp 폴더만 있습니다(tmp 폴더는 59G를 사용합니다).

원본 tmp 폴더를 유지하지 않고 tmp 폴더를 압축할 수 있습니까? 이므로 원본 폴더에서 압축이 수행됩니다.

폴더 사용법:

 root@serverE1:/var/backup/SQL #  du -sh *

 59G     tmp

따라서 압축 후에는 다음만 표시됩니다. (8G는 단지 예일 뿐입니다.)

 8G   tmp.tar.gz

답변1

해결해야 할 두 가지 문제가 있습니다.

  • 출력을 방해하지 않고 파일을 삭제하는 방법
  • 출력을 생성할 때 출력을 배치할 위치입니다.

에 도트 파일이 없으면 /var/backup/SQL다음과 같이 간단합니다.

  • "."으로 시작하는 이름의 출력을 생성하면 됩니다.
  • 옵션을 사용하여 tar 파일에 추가 --remove-files하고
  • 출력 이름을 tmp.tar.gz"완료되면"으로 바꿉니다.

그것은 마치

cd /var/backup/SQL
tar cfz .tmp.tar.gz --remove-files * && mv .tmp.tar.gz tmp.tar.gz

만약 너라면하다dot 파일을 사용하면 압축할 파일 목록을 만든 다음 해당 목록을 사용하여 tar 파일을 만들 수 있습니다. Linux를 사용하면 -T( ) 옵션을 사용하여 이 목록을 읽을 수 있습니다 --files-from. 예를 들어 다음과 같습니다.

cd /var/backup/SQL
find . -type f >/tmp/list
tar czf tmp.tar.gz --remove-files --files-from /tmp/list

(임시 파일 대신 프로세스 교체를 확실히 제안할 수도 있지만 이는 크기를 제한하는 단점이 있어 문제가 될 수 있습니다.)

답변2

파일 관리자를 사용하십시오. 사용법 예를 들어 mc다음으로 이동하십시오.SQL/임시 테이블, 이기다F2, ("현재 하위 디렉터리 압축(tar.gz)"), 그 다음에, 그 다음에입력하다, 보관 대기 중, 이전 수준, (새 파일 참고SQL/tmp.tar.gz파일), 사용F8삭제tmp폴더.

( mc'로 시작하는 모든 파일과 디렉터리는 압축됩니다..'도 마찬가지다. )

관련 정보