특정 경로에 있는 폴더를 tar하고 다른 폴더에 저장합니다.

특정 경로에 있는 폴더를 tar하고 다른 폴더에 저장합니다.

작은 bash 프로젝트를 완료하려고 하는데 경로가 지정된 폴더를 tar하려고 하면 멈춥니다. 예를 들어 프로그램은 경로를 수신합니다 /home/folderx. 그런 다음 루프를 사용하여 해당 디렉토리 내의 각 폴더를 찾습니다 for i in ~/folderx/*; do.... 문제는 을 사용하여 해당 경로 내의 모든 폴더를 압축하려고 시도했지만 tar -czvf $i.tgz $i -P프로그램에 제공된 전체 경로가 압축되었다는 것입니다. 결국 .tgz올바른 이름(압축하려는 디렉터리 이름)의 파일을 얻었지만 그 안에는 내용 /home/folderx/name_of_the_folder/contents이상의 내용이 있었습니다.name_of_the_folder

문제는 무엇입니까? 매우 감사합니다.

답변1

tar가 필요한 디렉토리에 있어야 합니다.

for i in ~/folderx/*; do...반복 해서 해라

cd $i
tar -czvf $i.tgz . -P
cd -

이것은 나에게 효과적입니다.

답변2

먼저 아카이브 파일을 생성한 후 명령을 실행합니다.

예를 들어:

destination__folder = "name_of_folder.tgz"

tar czvf $path/to/destination_folder $i

위의 예 $i는 스크립트에서 이미 사용하고 있는 것입니다.

관련 정보