Paano Mag-extract ng Mga File Mula sa isang .tar.gz o .tar.bz2 File sa Linux

Ang mga file ng tar ay naka-compress na mga archive. Madalas mong makatagpo ang mga ito habang gumagamit ng pamamahagi ng Linux tulad ng Ubuntu o kahit na habang ginagamit ang terminal sa macOS. Narito kung paano i-extract-o i-untar ang mga nilalaman ng isang file ng tar, na kilala rin bilang isang tarball.

Ano ang Ibig sabihin ng .tar.gz at .tar.bz2?

Mga file na mayroong .tar.gz o a .tar.bz2 ang extension ay naka-compress na mga file ng archive. Isang file na may isang .tar Ang extension ay hindi nai-compress, ngunit ang mga iyon ay magiging napakabihirang.

Ang .tar Ang bahagi ng extension ng file ay nangangahulugang tunggoy archive, at ang dahilan na pareho ng mga uri ng file na ito ay tinatawag na mga tar file. Ang mga file ng tar ay nagbabalik hanggang 1979 nang ang alkitran ang utos ay nilikha upang payagan ang mga administrator ng system na i-archive ang mga file sa tape. Makalipas ang apatnapung taon ginagamit pa rin namin ang alkitran utos na kunin ang mga file ng tar sa aming mga hard drive. May isang tao sa kung saan ay gumagamit pa rin alkitran may tape.

Ang.gz o .bz2 ipinapahiwatig ng extension ng panlapi na ang archive ay na-compress, gamit ang alinman sa gzip o bzip2 algorithm ng compression. Ang alkitran ang command ay gagana nang masaya sa parehong uri ng file, kaya't hindi mahalaga kung aling pamamaraang compression ang ginamit — at dapat itong magamit kahit saan ka magkaroon ng Bash shell. Kailangan mo lamang gamitin ang naaangkop alkitran mga pagpipilian sa linya ng utos.

Kinukuha ang Mga File mula sa Tar Files

Sabihin nating nag-download ka ng dalawang file ng sheet music. Isang file ang tinawag ukulele_songs.tar.gz , ang iba ay tinawag gitara_songs.tar.bz2. Ang mga file na ito ay nasa direktoryo ng Mga Pag-download.

Kunin natin ang mga kanta ng ukulele:

tar -xvzf ukulele_songs.tar.gz 

Tulad ng mga file na nakuha, nakalista ang mga ito sa window ng terminal.

Ang mga pagpipilian sa linya ng utos na ginamit namin ay:

  • -x: I-extract, kunin ang mga file mula sa tar file.
  • -v: Verbose, ilista ang mga file habang nakuha ang mga ito.
  • -z: Gzip, gumamit ng gzip upang mai-decompress ang tar file.
  • -f: File, ang pangalan ng file ng tar na gusto namin alkitran magtrabaho kasama si. Ang pagpipiliang ito ay dapat na sundan ng pangalan ng file ng alkitran.

Ilista ang mga file sa direktoryo kasama ls at makikita mo na ang isang direktoryo ay nilikha na tinatawag na Ukulele Songs. Ang mga nakuhang file ay nasa direktoryong iyon. Saan nagmula ang direktoryong ito? Nakapaloob ito sa alkitran file, at nakuha kasama ang mga file.

Ngayon kunin natin ang mga kanta sa gitara. Upang magawa ito, gagamitin namin ang halos eksaktong kapareho ng utos tulad ng dati ngunit may isang mahalagang pagkakaiba. Ang .bz2 sinasabi sa amin ng extension na panlapi na nai-compress ito gamit ang bzip2 command. Sa halip na gamitin ang-z (Gzip) na pagpipilian, gagamitin namin ang -j (bzip2) na pagpipilian.

tar -xvjf gitara_songs.tar.bz2

Sa sandaling muli, ang mga file ay nakalista sa terminal habang sila ay nakuha. Upang maging malinaw, ang mga pagpipilian sa linya ng utos na ginamit namin alkitran para sa .tar.bz2 ang file ay:

  • -x: I-extract, kunin ang mga file mula sa file ng tar.
  • -v: Verbose, ilista ang mga file habang sila ay nakuha.
  • -j: Bzip2, gumamit ng bzip2 upang mai-decompress ang tar file.
  • -f: File, pangalan ng file ng tar na nais naming gumana sa alkitran.

Kung ilista namin ang mga file sa direktoryo ng Pag-download ay makikita natin na may isa pang direktoryo na tinatawag na Mga Guitar Song ay nilikha.

Pagpili Kung Saan Kinukuha ang Mga File Sa

Kung nais naming makuha ang mga file sa isang lokasyon na iba sa kasalukuyang direktoryo, maaari naming tukuyin ang isang direktoryo ng target gamit ang -C (tinukoy na direktoryo) na pagpipilian.

tar -xvjf gitara_songs.tar.gz -C ~ / Mga Dokumento / Mga Kanta /

Sa pagtingin sa aming direktoryo ng Mga Dokumento / Mga Kanta makikita namin ang direktoryo ng Mga Guitar Song ay nilikha.

Tandaan na dapat mayroon nang direktoryo ng target, alkitran hindi lilikha nito kung wala ito. Kung kailangan mong lumikha ng isang direktoryo at mayroon alkitran kunin ang mga file sa lahat ng ito sa isang utos, magagawa mo ito tulad ng sumusunod:

mkdir -p ~ / Mga Dokumento / Mga Kanta / Na-download at& tar -xvjf gitara_songs.tar.gz -C ~ / Mga Dokumento / Mga Kanta / Na-download /

Ang -p (mga magulang) na pagpipilian na sanhi mkdir upang lumikha ng anumang mga direktoryo ng magulang na kinakailangan, tinitiyak na nilikha ang direktoryo ng target.

Naghahanap sa Loob ng Mga File ng Tar Bago Kinuha ang mga Ito

Sa ngayon ay tumagal kami ng isang hakbang ng pananampalataya at nakuha ang paningin ng mga file na hindi nakikita. Baka gusto mong tumingin bago ka tumalon. Maaari mong suriin ang mga nilalaman ng a alkitran file bago mo ito makuha sa pamamagitan ng paggamit ng -t (listahan) na pagpipilian. Karaniwan itong maginhawa upang i-tubo ang output sa pamamagitan ng mas kaunti utos

tar -tf ukulele_songs.tar.gz | mas kaunti

Pansinin na hindi namin kailangang gamitin ang -z pagpipilian upang ilista ang mga file. Kailangan lamang naming idagdag ang -z pagpipilian kapag tayo kumukuha mga file mula sa a .tar.gz file Gayundin, hindi namin kailangan ang -j pagpipilian upang ilista ang mga file sa a tar.bz2 file

Pag-scroll sa output maaari naming makita na ang lahat sa tar file ay gaganapin sa loob ng isang direktoryo na tinatawag na Ukulele Songs, at sa loob ng direktoryong iyon, may mga file at iba pang mga direktoryo.

Maaari nating makita na ang direktoryo ng Ukulele Songs ay naglalaman ng mga direktoryo na tinatawag na Random Songs, Ramones at Possibles.

Upang makuha ang lahat ng mga file mula sa isang direktoryo sa loob ng isang tar file gamitin ang sumusunod na utos. Tandaan na ang landas ay nakabalot ng mga marka ng panipi dahil may mga puwang sa landas.

tar -xvzf ukulele_songs.tar.gz "Ukulele Mga Kanta / Ramones /"

Upang kumuha ng isang solong file, ibigay ang path at ang pangalan ng file.

tar -xvzf ukulele_songs.tar.gz "Mga Kanta ng Ukulele / 023 - My Babe.odt"

Maaari kang makakuha ng isang pagpipilian ng mga file sa pamamagitan ng paggamit ng mga wildcard, kung saan * kumakatawan sa anumang string ng mga character at ? kumakatawan sa anumang solong character. Ang paggamit ng mga wildcard ay nangangailangan ng paggamit ng --mga card ng wild pagpipilian

tar -xvz --wildcards -f ukulele_songs.tar.gz "Mga Kanta ng Ukulele / Possibles / B *"

Kinukuha ang Mga File Nang Walang Pagkuha ng Mga Direktoryo

Kung hindi mo nais na likhain muli ang istraktura ng direktoryo sa file ng tar sa iyong hard drive, gamitin ang --strip-sangkap pagpipilian Ang --strip-sangkap Ang pagpipilian ay nangangailangan ng isang numerong parameter. Ang numero ay kumakatawan sa kung gaano karaming mga antas ng mga direktoryo upang hindi pansinin. Ang mga file mula sa hindi pinapansin na mga direktoryo ay nakuha pa rin, ngunit ang istraktura ng direktoryo ay hindi replicated sa iyong hard drive.

Kung tutukuyin namin --strip-sangkap = 1 kasama ang aming halimbawang file ng tar, ang pinakamataas na direktoryo ng Mga Kanta ng Ukulele sa loob ng file ng tar ay hindi nilikha sa hard drive. Ang mga file at direktoryo na maaaring makuha sa direktoryo na iyon ay nakuha sa direktoryo ng target.

tar -xvzf ukulele_songs.tar.gz --strip-sangkap = 1

Mayroong lamang dalawang mga antas ng direktoryang namumula sa loob ng aming halimbawang file ng tar. Kaya kung gagamitin natin --strip-sangkap = 2, ang lahat ng mga file ay nakuha sa direktoryo ng target, at walang ibang mga direktoryo na nilikha.

tar -xvzf ukulele_songs.tar.gz --strip-sangkap = 2

Kung titingnan mo ang pahina ng tao sa Linux makikita mo iyon alkitran dapat maging isang mahusay na kandidato para sa pamagat ng "utos na may pinakamaraming mga pagpipilian sa linya ng utos." Sa kabutihang palad, upang payagan kaming kumuha ng mga file mula sa .tar.gz at tar.bz2 mga file na may mahusay na antas ng granular control, kailangan lamang nating tandaan ang isang dakot ng mga pagpipiliang ito.


$config[zx-auto] not found$config[zx-overlay] not found