Avi*_*Raj 368
在终端中运行以下命令以查看 tar.gz 文件的内容而不解压它:
tar -tf filename.tar.gz
Run Code Online (Sandbox Code Playgroud)

-t, --list
列出档案的内容。参数是可选的。给出时,它们指定要列出的成员的名称。
-f, --file=ARCHIVE 使用存档文件或设备 ARCHIVE...
s.m*_*s.m 147
你也可以使用vim
vim filename.tar.gz
Run Code Online (Sandbox Code Playgroud)
Oli*_*Oli 47
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
...
Run Code Online (Sandbox Code Playgroud)
并且因为它是less,您可以滚动浏览它,搜索它等。但是它与其他压缩算法(以我的经验)悲惨地失败了。
krt*_*krt 43
您可以使用 z 命令:zcat, zless, zgrep。
要查看文件内容,请使用:
zcat file.gz
Run Code Online (Sandbox Code Playgroud)
要使用 grep 某些东西:
zgrep test file.gz
Run Code Online (Sandbox Code Playgroud)
要检查文件之间的差异,请使用:
zdiff file1.gz file2.gz
Run Code Online (Sandbox Code Playgroud)
这些只是几个例子,还有更多。
ter*_*don 13
嗯,这取决于文件。大多数(解)压缩程序都有一个标志,用于列出档案的内容。
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/
Run Code Online (Sandbox Code Playgroud)zip 档案
$ zip -sf foo.zip
Archive contains:
dir1/
dir2/
dir1/subdir1/
dir1/subdir1/file
dir1/subdir2/
dir1/subdir2/file
Total 6 entries (0 bytes)
Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud)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%
Run Code Online (Sandbox Code Playgroud)这是大多数更流行的存档格式。考虑到所有这些,您可以编写一个小脚本,根据您提供给它的文件的扩展名使用适当的命令:
$ tar tf foo.tgz
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/subdir2/
dir1/subdir2/file
dir2/
Run Code Online (Sandbox Code Playgroud)
将该脚本保存在您的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)
Run Code Online (Sandbox Code Playgroud)
而且既然有人提到了那个小编辑器,自然而然,emacs 也可以做到这一点:

tar的-t标志将为您列出内容。将其添加到您的其他标志(例如-tvfza tar.gz、-tvfjatar.bz2等),您无需提取即可浏览。从那里你可以很容易地提取单个文件
tar -xvfz mybackup.tar.gz path/to/file
Run Code Online (Sandbox Code Playgroud)
最大的问题tar是记住所有其他标志。所以我通常依靠7z(p7zip-full包的)来做我所有的归档。我不会声称它完全更好,但它支持几乎所有内容(无需指定压缩类型)并且参数是合乎逻辑的。
7z l archive.ext
7z e archive.ext path/to/file
Run Code Online (Sandbox Code Playgroud)
它当然功能较弱,但您不需要手册页即可使用它。
还有午夜指挥官(mc)。这是一个全方位的坏蛋的准基于图形终端的文件管理,并与一些光测试,它只是让你浏览到两个.tar.gz及.7z档案。我不确定它支持多少其他人。
为什么不用vim来浏览您的存档和打开文件(至少是类似文本的文件):
vim archive.tar.gz
Run Code Online (Sandbox Code Playgroud)

按箭头键滚动并Enter打开文件。
Midnight Commander ( mc) 也有一个很好的压缩文件查看器,虽然我认为这有点作弊,因为 mc是一个文件管理器,尽管是基于文本的。
此外,如果您只想查看压缩档案中的内容,您可以学习每个压缩器的“查看”命令。tar tzvf将向您显示 tar 文件的内容,unzip -l将为 zip 文件执行此操作,等等。
lesspipe是默认情况下作为less包的一部分安装的 shell 脚本,它可以列出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
Run Code Online (Sandbox Code Playgroud)
如果环境变量设置适当,它会被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
Run Code Online (Sandbox Code Playgroud)
请注意,因为它主要被设计为 的预处理器less,所以如果它不能识别文件类型,它将不会输出任何内容。我注意到.tar.gz我下载的某些文件不起作用,因为尽管有文件名,它们实际上并没有使用 gzip 压缩。
| 归档时间: |
|
| 查看次数: |
623972 次 |
| 最近记录: |