폴더(tar1)를 압축하고 압축된 폴더를 다른 디렉터리(tar2라고 가정)로 보내는 방법.
여기에서 질문을 확인했는데 대부분 디렉터리가 아닌 파일을 사용합니다. 모든 조합을 시도해 보았지만 제대로 작동하지 않습니다.
내 ~에는 다음이 있습니다.
tar1/
a.txt
b.txt
tar2/
Tar1/에 a.txt, b.txt라는 테스트 파일이 있습니다. 해당 폴더를 압축하여 tar2/에 넣고 싶습니다.
그 후에는 다음과 같습니다.
tar1/
a.txt
b.txt
tar2/
tar1.gz
a.txt
b.txt
나는 노력하고있다
tar czvf tar2/ tar1/
(참고 서적에서 이 구문의 예를 제공합니다. 첫 번째 경로는 이를 저장하려는 위치이고 두 번째 경로는 아카이브를 생성하려는 위치입니다.
또한 -C를 대상으로 사용해 보았습니다.
tar cvzf tar1/ -C tar2/
tar1/이 디렉토리를 압축하여 tar2에 넣기를 원함
이 오류가 발생합니다.
tar: 빈 아카이브 생성을 비겁하게 거부합니다.
tar --help' or
자세한 내용은 tar --usage'를 사용해 보십시오 .
RHEL 6.7을 사용하고 있습니다.
답변1
명세서에 아카이브를 지정하지 않았습니다. 다음과 같아야 합니다:
tar -cvf tar2/tar1.tar tar1/
이렇게 하면 tarball이 tar1.tar
해당 디렉토리에 배치됩니다 tar2/
.
앞으로:
tree tar*
tar1
├── a.txt
└── b.txt
tar2
├── a.txt
└── b.txt
0 directories, 4 files
뒤쪽에:
tar -cvf tar2/tar1.tar tar1/
tar1/
tar1/a.txt
tar1/b.txt
tree tar*
tar1
├── a.txt
└── b.txt
tar2
├── a.txt
├── b.txt
└── tar1.tar
0 directories, 5 files
환경:
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie
답변2
너 뭐야실제로 하려고 노력 중예다른 답변의 댓글에 묻혀 있습니다.. tar
분명히 전제조건도 아니고 압축도 아닙니다.
이를 수행하는 방법은 다음과 같습니다 pax
.
다음 위치에 압축된 아카이브 tar1/*
(접두사 없음 tar1/
) 를 생성하려면 tar2/tar1.tar.gz
:
( cd tar1/ && pax -z -w * > ../tar2/tar1.tar.gz )
전체 계층구조를 tar1/
다음에서 직접 복사하세요.tar2/
중간 파일 없음그리고모든 것을 저장:
( cd tar1/ && pax -pe -r -w * ../tar2/ )
*
물론 셸에는 확장 시 도트 파일이 포함되지 않습니다. 문제가 발생하면 일반적인 방법으로 처리하세요.