විධාන රේඛාවෙන් උපුටා නොගෙන tar.gz ගොනුවේ අන්තර්ගතය මා දකින්නේ කෙසේද?


278

ලේඛනාගාරයක අන්තර්ගතය (ලිපිගොනු සහ ෆෝල්ඩර ලැයිස්තුව) බැලීමට මට අවශ්‍යය, උදාහරණයක් ලෙස tar.gzගොනුවක් උකහා නොගෙන.

ඒ සඳහා ක්‍රම තිබේද?


2
vimලිපිගොනු පිරික්සීමට භාවිතා කරන්න
ako

Answers:


304

Tar.gz ගොනුවක අන්තර්ගතය උකහා නොගෙන බැලීමට ටර්මිනලයේ පහත විධානය ක්‍රියාත්මක කරන්න:

tar -tf filename.tar.gz

ටර්මිනලයේ සම්පීඩිත තාර බෝල් ගොනු ලැයිස්තුගත කිරීමේ තිර රුව

-t, --list
ලේඛනාගාරයක අන්තර්ගතය ලැයිස්තුගත කරන්න. තර්ක අත්‍යවශ්‍ය නොවේ. ලබා දුන් විට, ඔවුන් ලැයිස්තු ගත කළ යුතු සාමාජිකයන්ගේ නම් සඳහන් කරයි.


1
සම්පීඩිත ගොනුව ඇතුළත බැලීමට මෙම සියලු උදාහරණ වෙනත් ආකාරයේ ආකෘතීන් මත ද ක්‍රියා කරයි. සිප්, රාර්, තාර වැනි?
Ciasto piekarz

5
tar -tvf xxx.tgzමෙය ලිපිගොනු වල විස්තරාත්මක ගුණාංග ද පෙන්වයි.
එරික් වැන්ග්

6
treeගස් දර්ශනයක් බැලීමට එය නල කරන්නtar -tf filename.tar.gz | tree
blockloop

Zip / rar භාවිතය සඳහා unzip -l/unrar -l
pLumo

නිශ්චිත ගැඹුරක් / මට්ටමකට පමණක් ලැයිස්තු ගත කිරීමට ඔබට අවශ්‍ය නම් මෙහි බලන්න .
holzkohlengrill

128

ඔබට vim ද භාවිතා කළ හැකිය

vim filename.tar.gz

9
මේක නම් නියමයි. ලිපිගොනු වල අන්තර්ගතයද ඔබට දැක ගත හැකිය!
නිකෝ

1
නැතහොත් Ex editor භාවිතා කරන්න : ex +%p foo.tar.gz.
kenorb

ICNico tgz තුළ ඇති ගොනුවක අන්තර්ගතය බැලීමට ඔබ මෙය භාවිතා කරන්නේ කෙසේද?
1252748

2
ඔබ vim ( vim file.tar.gz) සමඟ ඩී ගොනුව විවෘත කළ විට එහි සඳහන් වන්නේ “කර්සරය සහිත ගොනුවක් තෝරා ENTER ඔබන්න” යන්නයි. ඔබ එය කරන්නේ, කර්සරය ගොනුවක් හරහා ගෙන ගොස් ENTER ඔබන්න.
නිකෝ

3
විශාල ලේඛනාගාරයක් සමඟ ඔබ ඉවසිලිවන්ත විය යුතුය. ෆෝල්ඩරයේ ව්‍යුහය පැටවීම ඉතා දිගු විය හැකිය. :-)
හියුගෝ එච්

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, ඔබට එය හරහා අනුචලනය කළ හැකිය, එය සෙවිය හැකිය. කෙසේ වෙතත් එය වෙනත් සම්පීඩන ඇල්ගොරිතම සමඟ අවාසනාවන්ත ලෙස අසමත් වේ (මගේ අත්දැකීම් අනුව).


6
මට වැඩ කළේ නැහැ. ද්විමය ගොනුවක් ලෙස පෙන්වනු ලැබේ.
jeromej

3
ඔබ මෙහි නොපෙන්වන aliasවිශේෂ විකල්පයන් නොමැති lessබව ඔබට විශ්වාසද ? මම එය බැලීමට උත්සාහ කළ නමුත් එය සාර්ථක වූයේ නැත. මට අන්වර්ථ සැකසුම් නොමැත less.
code_dredd

38

ඔබ z විධානය භාවිතා කළ හැකි: zcat, zless, zgrep.

ගොනු අන්තර්ගත භාවිතය සඳහා:

zcat file.gz   

යමක් භාවිතා කිරීමට:

zgrep test file.gz   

ලිපිගොනු භාවිතය අතර වෙනස පරීක්ෂා කිරීම සඳහා:

zdiff file1.gz file2.gz

මේවා උදාහරණ කිහිපයක් පමණි, තවත් බොහෝ දේ ඇත.


10

හොඳයි, එය ගොනුව මත රඳා පවතී. බොහෝ ()) සම්පීඩන වැඩසටහන් වල සංරක්ෂිතයේ අන්තර්ගතය ලැයිස්තුගත කරන ධජයක් ඇත.

  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


9

tar'S -tධජය ඔබ වෙනුවෙන් අන්තර්ගතය ලැයිස්තුගත වනු ඇත. එය ඔබගේ අනෙක් කොඩි වලට එක් කරන්න (එබැවින් -tvfza tar.gz, a , -tvfjසඳහා 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

එය නිසැකවම අඩු හැකියාවක් ඇත, නමුත් එය භාවිතා කිරීමට ඔබට man පිටුව අවශ්‍ය නොවේ.

මිඩ්නයිට් කමාන්ඩර් ( mc) ද ඇත. මෙය අර්ධ-ග්‍රැෆික් ටර්මිනල් මත පදනම් වූ ගොනු කළමනාකරණය සඳහා වන සර්වබලධාරී බැඩ්සාස් එකක් වන අතර යම් සැහැල්ලු පරීක්ෂාවකින් එය ඔබට සංරක්ෂිත .tar.gzහා .7zලේඛනාගාර දෙකටම සැරිසැරීමට ඉඩ දෙයි . එය තවත් කීදෙනෙකුට සහය දක්වයිදැයි මට විශ්වාස නැත.


t-ar භාවිතා කර ඇති අතර නම ඇත්ත වශයෙන්ම ටේප් ලේඛනාගාරය නියෝජනය කරයි, එය අනුක්‍රමිකව කෑගසන අතර බොහෝ විට PIA වේ. විශේෂයෙන් නොවැළැක්විය හැකි ද්විත්ව තාර + gz ලෙස මෙය කුරිරු ය. දැන් 7zip වෙත මාරු වෙමින්.
ෆ්‍රෑන්ක් නොක්

6

vimඔබගේ ලේඛනාගාරය පිරික්සීමට සහ ගොනු විවෘත කිරීමට භාවිතා නොකරන්නේ ඇයි (අවම වශයෙන් පෙළ වැනි ලිපිගොනු):

vim archive.tar.gz

රූප විස්තරය මෙහි ඇතුළත් කරන්න

අනුචලනය කිරීමට සහ Enterගොනුවක් විවෘත කිරීමට ඊතල යතුරු ඔබන්න .


4

මධ්යම රාත්රියේ ආඥාපති ( mcmc සිට මම මේ වංචා ටිකක් සලකා වුවත්) ද, හොඳ සම්පීඩිත ගොනුව නරඹන්නාට ඇත යනු පෙළ මත පදනම් එකල්හි, ගොනු කළමනාකරු.

එසේම, ඔබට අවශ්‍ය වන්නේ සම්පීඩිත ලේඛනාගාරයේ ඇති දේ දැකීමට නම්, එක් එක් සම්පීඩකය සඳහා “view” විධානය ඉගෙන ගත හැකිය. tar tzvfතාර ගොනුවක අන්තර්ගතය ඔබට පෙන්වනු unzip -lඇත, එය සිප් ගොනුවක් සඳහා කරනු ඇත, සහ යනාදිය.


3

භාවිතා කිරීම 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( ඔලිගේ පිළිතුර බලන්න ) විධානය මඟින් හැඳින්වේ $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 සම්පීඩනය භාවිතා නොකිරීම නිසා ක්‍රියා නොකරන බව මම දුටුවෙමි .


1

ලේඛනාගාරය උපුටා ගැනීමකින් හෝ තැටියට ලිවීමකින් තොරව ලේඛනාගාරයක් තුළ නිශ්චිත ගොනුවක අන්තර්ගතය බැලීමට ඔබට අවශ්‍ය නම්, -O (කැපිටල් ඕ) ධජය භාවිතා කර ගොනුවක් වෙනුවට stdout වෙත ලිවීමට.

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

F පැමිණීමට පෙර O පැමිණෙන බවට වග බලා ගන්න හෝ එය ගොනු නාමයක් ලෙස O විග්‍රහ කිරීමට උත්සාහ කරයි.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.