
작은 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
는 스크립트에서 이미 사용하고 있는 것입니다.