현재 현재 디렉터리의 일부 파일을 tar 아카이브로 묶은 다음 해당 아카이브를 현재 디렉터리의 상위 디렉터리에 배치하려고 합니다. 누군가 나에게 이 작업을 수행하는 방법을 설명해 줄 수 있는지 궁금합니다. 필요한 파일을 묶는 방법은 이해하지만 아카이브가 상위 파일에 있도록 만드는 방법은 혼란스럽습니다.
현재 다음 명령을 사용하고 있습니다.
$ tar -tvf something.tar $( find -name "*.txt")
.txt 확장자를 가진 파일을 번들로 묶어야 하기 때문입니다.
답변1
다음 방법 중 하나로 이 작업을 수행할 수 있습니다.
tar cvf ../something.tar $( find -name "*.txt")
something.tar
이렇게 하면 파일이 위의 디렉터리에 배치됩니다 .
더 자세한 방법은 다음과 같습니다.
tar cvf /path/to/something.tar $( find -name "*.txt")
파일을 배치할 위치에 대한 직접 경로를 사용합니다 .tar
.
실제 압축을 원하는 경우:
tar cvfz something.tar.gz $( find -name "*.txt")
A는 z
그것을 파일로 정리할 것입니다 .gz
.
기본적으로 콘텐츠를 실제 아카이브로 사용 cvf
하거나 cfvz
압축 하고 싶습니다 . c
명령에서 t
as를 사용하면 tvf
아카이브 내용을 추출하지 않고 표준 출력으로 보내는데, 아직 아카이브를 생성하지 않았기 때문에 작동하지 않습니다 .tar
.
*
환경에 따라 탈출해야 할 수도 있습니다.
tar cvf ../something.tar $( find -name "\*.txt")
나중에 이 기능이 필요할 수 있는 사용자를 위한 또 다른 업데이트:
이 기능을 사용하려는 사람이 아직 설치하지 않은 경우 find 명령에 이전에 검색한 경로를 포함 findutils
해야 합니다 .-name
tar cvf ../something.tar $( find . -name "\*.txt")
tar cvf ../something.tar $( find /path/to/directory -name "\*.txt")
첫 번째는 현재 디렉터리에서 검색하고 두 번째는 디렉터리 경로를 사용합니다.