ලේඛනාගාරයක අන්තර්ගතය (ලිපිගොනු සහ ෆෝල්ඩර ලැයිස්තුව) බැලීමට මට අවශ්යය, උදාහරණයක් ලෙස tar.gz
ගොනුවක් උකහා නොගෙන.
ඒ සඳහා ක්රම තිබේද?
ලේඛනාගාරයක අන්තර්ගතය (ලිපිගොනු සහ ෆෝල්ඩර ලැයිස්තුව) බැලීමට මට අවශ්යය, උදාහරණයක් ලෙස tar.gz
ගොනුවක් උකහා නොගෙන.
ඒ සඳහා ක්රම තිබේද?
Answers:
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
/ 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)
අඩු සංස්කාරකවරයකු යමෙකු සඳහන් කර ඇති හෙයින්, ස්වාභාවිකවම, ඊමාක්වරුන්ට ද මෙය කළ හැකිය:
tar
'S -t
ධජය ඔබ වෙනුවෙන් අන්තර්ගතය ලැයිස්තුගත වනු ඇත. එය ඔබගේ අනෙක් කොඩි වලට එක් කරන්න (එබැවින් -tvfz
a 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
ලේඛනාගාර දෙකටම සැරිසැරීමට ඉඩ දෙයි . එය තවත් කීදෙනෙකුට සහය දක්වයිදැයි මට විශ්වාස නැත.
vim
ඔබගේ ලේඛනාගාරය පිරික්සීමට සහ ගොනු විවෘත කිරීමට භාවිතා නොකරන්නේ ඇයි (අවම වශයෙන් පෙළ වැනි ලිපිගොනු):
vim archive.tar.gz
අනුචලනය කිරීමට සහ Enterගොනුවක් විවෘත කිරීමට ඊතල යතුරු ඔබන්න .
මධ්යම රාත්රියේ ආඥාපති ( mc
mc සිට මම මේ වංචා ටිකක් සලකා වුවත්) ද, හොඳ සම්පීඩිත ගොනුව නරඹන්නාට ඇත යනු පෙළ මත පදනම් එකල්හි, ගොනු කළමනාකරු.
එසේම, ඔබට අවශ්ය වන්නේ සම්පීඩිත ලේඛනාගාරයේ ඇති දේ දැකීමට නම්, එක් එක් සම්පීඩකය සඳහා “view” විධානය ඉගෙන ගත හැකිය. tar tzvf
තාර ගොනුවක අන්තර්ගතය ඔබට පෙන්වනු unzip -l
ඇත, එය සිප් ගොනුවක් සඳහා කරනු ඇත, සහ යනාදිය.
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-local
tar
*.tar.gz|*.tgz|*.tar.z|*.tar.dz)
tar tzvf "$1" --force-local
එය මූලික වශයෙන් පෙර සැකසුම්කරුවෙකු ලෙස නිර්මාණය කර ඇති නිසා less
, එය ගොනු වර්ගය හඳුනා නොගන්නේ නම් එය කිසිවක් ප්රතිදානය නොකරන බව සලකන්න . මා .tar.gz
බාගත කළ සමහර ලිපිගොනු ගොනු නාමයක් තිබියදීත් ඇත්ත වශයෙන්ම gzip සම්පීඩනය භාවිතා නොකිරීම නිසා ක්රියා නොකරන බව මම දුටුවෙමි .
ලේඛනාගාරය උපුටා ගැනීමකින් හෝ තැටියට ලිවීමකින් තොරව ලේඛනාගාරයක් තුළ නිශ්චිත ගොනුවක අන්තර්ගතය බැලීමට ඔබට අවශ්ය නම්, -O (කැපිටල් ඕ) ධජය භාවිතා කර ගොනුවක් වෙනුවට stdout වෙත ලිවීමට.
tar -Oxvf gerald.tar.gz /path/to/sandra.txt | less
F පැමිණීමට පෙර O පැමිණෙන බවට වග බලා ගන්න හෝ එය ගොනු නාමයක් ලෙස O විග්රහ කිරීමට උත්සාහ කරයි.
vim
ලිපිගොනු පිරික්සීමට භාවිතා කරන්න