답변:
tar.gz 파일의 내용을 추출하지 않고 보려면 터미널에서 아래 명령을 실행하십시오.
tar -tf filename.tar.gz
-t, --list
아카이브 내용을 나열합니다. 인수는 선택 사항입니다. 주어진 경우, 그들은 나열 할 멤버의 이름을 지정합니다.
tar -tvf xxx.tgz
이것은 또한 파일의 상세 속성을 보여줍니다.
tree
트리보기tar -tf filename.tar.gz | tree
unzip -l
/unrar -l
vim을 사용할 수도 있습니다
vim filename.tar.gz
ex +%p foo.tar.gz
.
vim file.tar.gz
)으로 파일을 열면 "커서로 파일을 선택하고 ENTER를 누르십시오"라고 표시됩니다. 그냥 커서를 파일 위로 옮기고 ENTER를 누르십시오.
less
gz
압축 및 비 압축 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
스크롤하거나 검색 할 수 있습니다. 그러나 다른 압축 알고리즘 (제 경험상)에서는 비참하게 실패합니다.
alias
에 대한 특별한 옵션이 less
여기에 표시되지하고 있는지를? 방금 보려고했지만 작동하지 않았습니다. 에 대한 별칭 설정이 없습니다 less
.
tar
님의 -t
깃발이 당신을 위해 내용을 나열 할 것입니다. (그래서 다른 플래그에 그 추가 -tvfz
A에 대한 tar.gz
, -tvfj
A의 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
아카이브 를 모두 탐색 할 수 있습니다 . 다른 사람이 얼마나 많은 것을 지원하는지 잘 모르겠습니다.
파일에 따라 다릅니다. 대부분의 압축 해제 프로그램에는 아카이브의 내용을 나열하는 플래그가 있습니다.
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/
zip
파일들
$ zip -sf foo.zip
Archive contains:
dir1/
dir2/
dir1/subdir1/
dir1/subdir1/file
dir1/subdir2/
dir1/subdir2/file
Total 6 entries (0 bytes)
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
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도 다음과 같이 할 수 있다고 언급했습니다.
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-local
tar
*.tar.gz|*.tgz|*.tar.z|*.tar.dz)
tar tzvf "$1" --force-local
이 파일은 주로의 전처리기로 설계되었으므로 less
파일 형식을 인식하지 못하면 아무 것도 출력하지 않습니다. .tar.gz
파일 이름에도 불구하고 실제로 gzip 압축을 사용하지 않았기 때문에 다운로드 한 일부 파일이 작동하지 않는 것으로 나타났습니다 .