명령 줄에서 추출하지 않고 tar.gz 파일의 내용을 보려면 어떻게해야합니까?


243

아카이브의 내용 (파일 및 폴더 목록) (예 : 압축을 풀지 않은tar.gz 파일 )을보고 싶습니다 .

그 방법이 있습니까?

답변:


261

tar.gz 파일의 내용을 추출하지 않고 보려면 터미널에서 아래 명령을 실행하십시오.

tar -tf filename.tar.gz

터미널에 압축 된 tarball 파일을 나열하는 스크린 샷

-t, --list
아카이브 내용을 나열합니다. 인수는 선택 사항입니다. 주어진 경우, 그들은 나열 할 멤버의 이름을 지정합니다.


1
압축 파일 내부를 보는 이러한 모든 예제는 다른 형식의 형식에서도 작동합니다. 우편 번호, rar, tar 등?
Ciasto piekarz

3
tar -tvf xxx.tgz이것은 또한 파일의 상세 속성을 보여줍니다.
Eric Wang

4
파이프 tree트리보기tar -tf filename.tar.gz | tree
blockloop

zip / rar 사용 unzip -l/unrar -l
pLumo

특정 수심 / 레벨 까지 나열 하려면 여기 만 참조 하십시오 .
holzkohlengrill

119

vim을 사용할 수도 있습니다

vim filename.tar.gz

8
대단해. 파일 내용도 볼 수 있습니다!
Nico

1
또는 Ex 편집기를 사용하십시오 ex +%p foo.tar.gz.
kenorb

@Nico tgz 내의 파일 내용을 보려면 어떻게 사용합니까?
1252748

1
vim ( vim file.tar.gz)으로 파일을 열면 "커서로 파일을 선택하고 ENTER를 누르십시오"라고 표시됩니다. 그냥 커서를 파일 위로 옮기고 ENTER를 누르십시오.
Nico

2
거대한 아카이브를 사용하면 인내심을 가져야합니다. 폴더 구조를로드하는 데 시간이 오래 걸릴 수 있습니다. :-)
Hugo H

41

lessgz압축 및 비 압축 tar아카이브를 열 수도 있습니다. 그것은 당신 ls -l에게도 멋진 스타일 출력을 제공합니다 :

$ less ~/src/compiz_0.9.7.8-0ubuntu1.6.debian.tar.gz
drwxrwxr-x 0/0               0 2012-09-21 11:41 debian/
drwxrwxr-x 0/0               0 2012-08-09 13:32 debian/source/
-rw-rw-r-- 0/0              12 2012-08-09 13:32 debian/source/format
-rw-rw-r-- 0/0              25 2012-08-09 13:32 debian/libdecoration0-dev.docs
-rw-rw-r-- 0/0              25 2012-08-09 13:32 debian/compiz-dev.docs
-rw-rw-r-- 0/0             347 2012-08-09 13:32 debian/compiz-core.install
-rw-rw-r-- 0/0             125 2012-08-09 13:32 debian/libdecoration0-dev.install
...

그리고 그것이 있기 때문에 less스크롤하거나 검색 할 수 있습니다. 그러나 다른 압축 알고리즘 (제 경험상)에서는 비참하게 실패합니다.


4
나를 위해 작동하지 않았다. 이진 파일로 표시됩니다.
JeromeJ

2
당신은 확실히 당신은 필요가 없습니다 alias에 대한 특별한 옵션이 less여기에 표시되지하고 있는지를? 방금 보려고했지만 작동하지 않았습니다. 에 대한 별칭 설정이 없습니다 less.
code_dredd

36

당신은 Z 명령을 사용할 수 있습니다 zcat, zless, zgrep.

파일 내용을 보려면 다음을 사용하십시오.

zcat file.gz   

무언가를 grep하려면 다음을 사용하십시오.

zgrep test file.gz   

파일 간의 차이점을 확인하려면 다음을 사용하십시오.

zdiff file1.gz file2.gz

이것들은 몇 가지 예일뿐입니다. 더 많은 것이 있습니다.


9

tar님의 -t깃발이 당신을 위해 내용을 나열 할 것입니다. (그래서 다른 플래그에 그 추가 -tvfzA에 대한 tar.gz, -tvfjA의 tar.bz2등) 그리고 당신은 추출하지 않고 검색 할 수 있습니다. 거기에서 단일 파일을 아주 쉽게 추출 할 수 있습니다

tar -xvfz mybackup.tar.gz path/to/file

에 큰 문제가 tar되고 모든 기억 다른 플래그 . 그래서 나는 보통에 의존 7z(의 p7zip-full내 모든 보관을 할 패키지). 나는 그것이 더 낫다고 주장하지는 않지만 (압축 유형을 지정할 필요없이) 거의 모든 것을 지원하며 인수는 논리적입니다.

7z l archive.ext
7z e archive.ext path/to/file

확실히 능력이 떨어졌지만 사용하기 위해 매뉴얼 페이지가 필요 하지 않습니다 .

자정 사령관 ( mc)도 있습니다. 이것은 준 그래픽 터미널 기반 파일 관리에 대한 포괄적 인 악의이며 약간의 가벼운 테스트를 통해 아카이브 .tar.gz.7z아카이브 를 모두 탐색 할 수 있습니다 . 다른 사람이 얼마나 많은 것을 지원하는지 잘 모르겠습니다.


t-ar는 예전에는 테이프 아카이버 의 이름으로 , 순차적으로 비명을 지르며 대부분의 경우 PIA입니다. 특히 피할 수없는 더블 타르 + gz로서 이것은 잔인합니다. 또한 이제 7zip으로 이동하십시오.
Frank Nocke

9

파일에 따라 다릅니다. 대부분의 압축 해제 프로그램에는 아카이브의 내용을 나열하는 플래그가 있습니다.

  1. tar/ tar.gz/ tgz/ tar.xz/ tar.bz2/ tbz파일

    $ tar tf foo.tgz 
    dir1/
    dir1/subdir1/
    dir1/subdir1/file
    dir1/subdir2/
    dir1/subdir2/file
    dir2/
    
  2. zip 파일들

    $ zip -sf foo.zip 
    Archive contains:
      dir1/
      dir2/
      dir1/subdir1/
      dir1/subdir1/file
      dir1/subdir2/
      dir1/subdir2/file
    Total 6 entries (0 bytes)
    
  3. 7zip 파일들

    $ 7z l foo.7z 
    
    7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
    p7zip Version 9.20 (locale=en_US.utf8,Utf16=on,HugeFiles=on,4 CPUs)
    
    Listing archive: foo.7z
    
    --
    Path = foo.7z
    Type = 7z
    Solid = -
    Blocks = 0
    Physical Size = 168
    Headers Size = 168
    
       Date      Time    Attr         Size   Compressed  Name
    ------------------- ----- ------------ ------------  ------------------------
    2015-03-30 19:00:07 ....A            0            0  dir1/subdir1/file
    2015-03-30 19:00:07 ....A            0            0  dir1/subdir2/file
    2015-03-30 19:07:32 D....            0            0  dir2
    2015-03-30 19:00:07 D....            0            0  dir1/subdir2
    2015-03-30 19:00:07 D....            0            0  dir1/subdir1
    2015-03-30 19:00:06 D....            0            0  dir1
    ------------------- ----- ------------ ------------  ------------------------
                                         0            0  2 files, 4 folders
    
  4. rar 파일들

     $ rar v foo.rar 
    
    RAR 4.20   Copyright (c) 1993-2012 Alexander Roshal   9 Jun 2012
    Trial version             Type RAR -? for help
    
    Archive foo.rar
    
    Pathname/Comment
                      Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver
    -------------------------------------------------------------------------------
     dir1/subdir1/file
                         0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9
     dir1/subdir2/file
                         0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9
     dir1/subdir1
                         0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
     dir1/subdir2
                         0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
     dir1
                         0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
     dir2
                         0        0   0% 30-03-15 19:07 drwxr-xr-x 00000000 m0  2.0
    -------------------------------------------------------------------------------
        6                0       16   0%
    

이것이 가장 인기있는 아카이브 형식입니다. 이 모든 것을 염두에두고 파일의 확장자에 따라 적절한 명령을 사용하는 작은 스크립트를 작성할 수 있습니다.

#!/usr/bin/env bash

for file in "$@"
do
    printf "\n-----\nArchive '%s'\n-----\n" "$file"
    ## Get the file's extension
    ext=${file##*.}
    ## Special case for compressed tar files. They sometimes
    ## have extensions like tar.bz2 or tar.gz etc.
    [[ "$(basename "$file" ."$ext")" =~ \.tar$ ]] && ext="tgz"

    case $ext in
        7z)
            type 7z >/dev/null 2>&1 && 7z l "$file" || 
            echo "ERROR: no 7z program installed"
            ;;
        tar|tbz|tgz)
            type tar >/dev/null 2>&1 && tar tf "$file"|| 
            echo "ERROR: no tar program installed"
            ;;
        rar)
            type rar >/dev/null 2>&1 && rar v "$file"|| 
            echo "ERROR: no rar program installed"
            ;;
        zip)
            type zip >/dev/null 2>&1 && zip -sf "$file"|| 
            echo "ERROR: no zip program installed"
            ;;
        *)
            echo "Unknown extension: '$ext', skipping..."
            ;;
    esac
done

해당 스크립트를 저장 PATH하고 실행 파일로 만드십시오. 그런 다음 모든 아카이브의 내용을 나열 할 수 있습니다.

$ list_archive.sh foo.rar foo.tar.bz foo.tar.gz foo.tbz foo.zip

-----
Archive 'foo.rar'
-----

RAR 4.20   Copyright (c) 1993-2012 Alexander Roshal   9 Jun 2012
Trial version             Type RAR -? for help

Archive foo.rar

Pathname/Comment
                  Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver
-------------------------------------------------------------------------------
 dir1/subdir1/file
                     0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9
 dir1/file
                     0        8   0% 30-03-15 19:29 -rw-r--r-- 00000000 m3b 2.9
 dir1/subdir1
                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
 dir1
                     0        0   0% 30-03-15 19:29 drwxr-xr-x 00000000 m0  2.0
 dir2
                     0        0   0% 30-03-15 19:07 drwxr-xr-x 00000000 m0  2.0
-------------------------------------------------------------------------------
    5                0       16   0%


-----
Archive 'foo.tar.bz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.tar.gz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.tbz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.zip'
-----
Archive contains:
  dir1/
  dir1/subdir1/
  dir1/subdir1/file
  dir1/file
  dir2/
Total 5 entries (0 bytes)

그리고 누군가가 더 적은 편집자, 자연스럽게 emacs도 다음과 같이 할 수 있다고 언급했습니다.

아카이브의 내용을 보여주는 emacs


6

vim아카이브를 탐색하고 파일 (최소한 텍스트 파일)을 여는 데 사용하지 않는 이유 :

vim archive.tar.gz

여기에 이미지 설명을 입력하십시오

화살표 키를 눌러 Enter파일 을 스크롤하고 엽니 다.


4

Midnight Commander ( mc)에는 압축 파일 뷰어가 훌륭하지만 mc 텍스트 기반이지만 파일 관리자 이기 때문에 약간의 속임수라고 생각합니다 .

또한 압축 아카이브 내부의 내용을 보는 것만으로도 각 압축기에 대한 "view"명령을 배울 수 있습니다. tar tzvftar 파일의 내용을 보여주고 unzip -lzip 파일 등을 위해 수행합니다.


2

사용 view filename.tar.gz 도 작동합니다. vim과 거의 같은 방식이지만 쓰기 권한이 없습니다.


2

lesspipe아카이브 less의 내용 tar.gz및 기타 일반적인 아카이브 파일 형식의 범위를 나열 할 수 있는 패키지의 일부로 기본적으로 설치되는 쉘 스크립트 입니다.

$ lesspipe example.tar.gz
drwxrwxr-x ubuntu/ubuntu     0 2018-11-16 05:32 example/
-rw-rw-r-- ubuntu/ubuntu     7 2018-11-16 05:32 example/ask.txt
-rw-rw-r-- ubuntu/ubuntu     7 2018-11-16 05:32 example/ubuntu.txt

환경 변수가 적절하게 설정된 경우 less명령에 의해 입력 전처리 기로 호출됩니다 ( Oli의 답변 참조 ) $LESSOPEN.

모험심이 느껴지면 vi /usr/bin/lesspipe어떤 명령을 사용하는지 살펴보십시오. tar.gz확장명과 일치하는 파일의 경우 파일 이름의 콜론을 원격 테이프 드라이브를 사용하는 명령과 혼동시킬 수 있는 모호한 기능을 비활성화하는 옵션 tar tzvf과 함께 후드 아래를 사용한다는 것을 알 수 있습니다 .--force-localtar

*.tar.gz|*.tgz|*.tar.z|*.tar.dz)
        tar tzvf "$1" --force-local

이 파일은 주로의 전처리기로 설계되었으므로 less파일 형식을 인식하지 못하면 아무 것도 출력하지 않습니다. .tar.gz파일 이름에도 불구하고 실제로 gzip 압축을 사용하지 않았기 때문에 다운로드 한 일부 파일이 작동하지 않는 것으로 나타났습니다 .


0

아카이브를 추출하거나 디스크에 쓰지 않고 아카이브 내 특정 파일의 내용을 보려면 -O (capital o) 플래그를 사용하여 파일 대신 stdout에 씁니다.

tar -Oxvf gerald.tar.gz /path/to/sandra.txt | less

O가 f보다 앞에 오거나 O를 파일 이름으로 구문 분석하려고 시도합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.