آیا می خواهید یک فایل یا پوشه واحد را از بایگانی TAR یا TAR.GZ استخراج کنید؟ در اینجا نحوه انجام این کار در لینوکس با استفاده از دستور tar آورده شده است.
تاربال (TAR یا TAR.GZ) مجموعهای از فایلها است که به صورت یک آرشیو در کنار هم قرار گرفتهاند که ذخیره و انتقال تعداد زیادی فایل به صورت محلی یا از طریق اینترنت را آسان میکند. هر زمان که به فایل ها نیاز داشتید، می توانید به سادگی آرشیو را استخراج کنید.
سناریویی را در نظر بگیرید که در آن فقط به یک فایل از یک آرشیو بزرگ نیاز دارید. در چنین حالتی، به جای استخراج کل آرشیو، می توانید تنها فایل مورد نیاز خود را استخراج کنید. ببینیم چطور
مشاهده محتوای یک تربال
اگر فقط می خواهید محتوای یک فایل TAR یا TAR.GZ را مشاهده کنید، نیازی به استخراج آن ندارید. در عوض، از دستور زیر برای مشاهده آنچه در داخل است استفاده کنید:
tar -tvf [archive.tar]
tar -ztvf [archive.tar.gz]
با این کار لیست تمام فایل ها و دایرکتوری های داخل بایگانی چاپ می شود.
یک فایل واحد را از تربال استخراج کنید
برای استخراج یک فایل از TAR یا TAR.GZ، از فرمت دستور زیر استفاده کنید:
tar -xvf [archive.tar] [path-to-file]
tar -zxvf [archive.tar.gz] [path-to-file]
به یاد داشته باشید، شما باید مسیر کامل فایلی را که می خواهید استخراج کنید ارائه دهید. با استفاده از دستور tar -tvf [archive.tar] می توانید مسیر کامل فایل یا دایرکتوری را پیدا کنید.
برای استخراج یک فایل test1.txt از فایل های test.tar و test.tar.gz، دستورات به صورت زیر خواهد بود:
tar -xvf test.tar test1.txt
tar -zxvf test.tar.gz test1.txt
…جایی که:
- -x برای استخراج فایل ها از آرشیو استفاده می شود
- -v برای مشاهده پیشرفت در حین استخراج استفاده می شود
- -f برای تعیین نام تربال استفاده می شود
- -z برای فشرده سازی فایل های TAR.GZ استفاده می شود
این دستورات فایل مشخص شده را در دایرکتوری ترمینال فعلی استخراج می کند.
یک دایرکتوری واحد را از تاربال استخراج کنید
به طور مشابه، شما همچنین می توانید یک دایرکتوری واحد را از یک tarball با استفاده از نحو زیر استخراج کنید:
tar xvf [archive.tar] [path-to-directory]
tar -zxvf [archive.tar.gz] [path-to-directory]
به عنوان مثال، برای استخراج کل یک زیر شاخه test1 از بایگانی test.tar، باید مسیر کامل دایرکتوری را ارائه دهید، یعنی test/test1:
tar -xvf test.tar test/test1
با این کار کل زیر شاخه test/test1 در دایرکتوری ترمینال فعلی استخراج می شود.
یک فایل یا پوشه واحد را در یک فهرست مختلف استخراج کنید
همچنین می توانید یک فایل یا دایرکتوری را از یک تاربال به یک دایرکتوری دیگر استخراج کنید. برای این کار، از همان نحوی که در بالا گفته شد استفاده کنید، اما گزینه -C و سپس فهرست مقصد را اضافه کنید:
tar -xvf [archive.tar] -C [destination_directory] [file-or-directory]
tar -zxvf [archive.tar.gz] -C [destination_directory] [file-or-directory]
فرض کنید می خواهیم یک دایرکتوری test2 را از آرشیو test.tar به دایرکتوری Downloads به جای دایرکتوری فعلی استخراج کنیم. دستور در این مورد به صورت زیر خواهد بود:
tar -xvf test.tar -C ~/Downloads/ test/test2
یک فایل یا دایرکتوری واحد را از یک تاربال حذف کنید
اگر می خواهید یک فایل یا دایرکتوری را از یک فایل TAR یا TAR.GZ حذف کنید، از گزینه –delete با دستور tar استفاده کنید:
tar -vf [archive.tar] --delete [file-or-directory]
با این حال، نمیتوانید یک فایل یا فهرست را مستقیماً از یک تاربال فشرده (TAR.GZ) حذف کنید. کاری که باید انجام دهید این است که ابتدا فایل TAR.GZ را از حالت فشرده خارج کنید، فایل یا دایرکتوری را حذف کنید و سپس دوباره فشرده کنید.
برای فشرده سازی فایل TAR.GZ از دستور زیر استفاده کنید:
gzip -d [archive.tar.gz]
از حالت فشرده خارج کردن آن، فایل به TAR تبدیل می شود. اکنون می توانید فایل را از بایگانی TAR با استفاده از:
tar -vf [archive.tar] --delete [file-or-directory]
پس از آن، فایل TAR را با استفاده از gzip دوباره فشرده کنید:
gzip -f [archive.tar]
هنگام کار با آرشیوها در لینوکس در زمان خود صرفه جویی کنید
استخراج تنها فایل های مورد نیاز از بایگانی نه تنها از درهم ریختگی جلوگیری می کند، بلکه باعث صرفه جویی در زمانی می شود که در غیر این صورت صرف جستجوی تعداد زیادی فایل می شد.
گاهی اوقات، ایجاد و استخراج فایل های TAR منجر به ایجاد فایل های تکراری در سیستم شما می شود. بنابراین، این یک تمرین خوب است که آن موارد تکراری را به صورت دوره ای شناسایی و حذف کنید تا فضای شما شلوغ شود.