استخراج فایلهای tar.xz در لینوکس چگونه انجام میگیرد؟ فرمان مناسب برای استفاده از فایل linux-5.6.13.tar.xz چیست؟ چطور میتوان تمام فایلهای یک دایرکتوری را از حالت فشرده خارج کرد؟ اینها سؤالاتی هستند که میخواهیم در این مطلب به آنها پاسخ دهیم.
فرمانهای tar و xz برای استخراج و فشردهسازی فایلهای tar.xz و آرشیوهای .txz در سیستمعامل لینوکس به کار میروند.
نحوه استخراج فایلهای tar.xz در لینوکس
قالب کار به صورت زیر است:
۱) نصب xz با استفاده از فرمان dnf install xz در یک توزیع لینوکس CentOS، RHEL یا فدورا
۲) کاربران لینوکس دبیان یا اوبونتو میتواندد از فرمان apt install xz-utils استفاده کنند.
۳) استخراج فایلهای tar.xz با استفاده از فرمان tar -xf backup.tar.xz
۴) به عنوان مثال برای خارجکردن فایل filename.tar.xz از حالت فشرده، میتوانید از فرمان زیر استفاده کنید.
xz -d -v filename.tar.xz
روند نصب
XZ یک مجموعه نرمافزاری متنباز برای فشردهکنندههای بهینه داده و از جمله فرمتهای LZMA و xz است. این فرمتها در میان توسعهدهندگان متنباز بسیار محبوب هستند. این موضوع به این دلیل است که نرخ فشردگی در آنها بالاتر از گزینههایی مانند gzip و bzip2 است. فرمان tar در صورتی کار میکند که xz در سیستم نصب شده باشد. بنابراین، باید حتماً آن را نصب کنیم.
نصب xz در لینوکس دبیان / اوبونتو
برای این منظور میتوانید از فرمان apt یا apt-get استفاده کنید.
$ sudo apt install xz-utils
نمونه خروجی
Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 5 not upgraded. Need to get 82.5 kB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 xz-utils amd64 5.2.4-1 [82.5 kB] Fetched 82.5 kB in 1s (60.3 kB/s) (Reading database ... 284817 files and directories currently installed.) Preparing to unpack .../xz-utils_5.2.4-1_amd64.deb ... Unpacking xz-utils (5.2.4-1) over (5.2.4-1) ... Setting up xz-utils (5.2.4-1) ... Processing triggers for man-db (2.9.1-1) ...
نصب xz در لینوکس CentOS/RHEL/Fedora
برای این منظور برنامه ترمینال را باز کرده و سپس فرمان NA یا dnf را به صورت زیر اجرا کنید.
$ sudo dnf install xz ## On an older version of CentOS/RHEL try yum ## $ sudo yum install xz
نمونه خروجی در سیستم CentOS نسخه ۶
Loaded plugins: fastestmirror Setting up Install Process Loading mirror speeds from cached hostfile * base: centos.excellmedia.net * extras: centos.excellmedia.net * updates: centos.excellmedia.net Resolving Dependencies --> Running transaction check ---> Package xz.x86_64 0:4.999.9-0.5.beta.20091007git.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================= Package Arch Version Repository Size ================================================================================= Installing: xz x86_64 4.999.9-0.5.beta.20091007git.el6 base 137 k Transaction Summary ================================================================================= Install 1 Package(s) Total download size: 137 k Installed size: 477 k Is this ok [y/N]: y Downloading Packages: xz-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm | 137 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : xz-4.999.9-0.5.beta.20091007git.el6.x86_64 1/1 Verifying : xz-4.999.9-0.5.beta.20091007git.el6.x86_64 1/1 Installed: xz.x86_64 0:4.999.9-0.5.beta.20091007git.el6 Complete!
نصب xz در لینوکس OpenSUSE/SUSE اینترپرایز
برای این منظور میتوانیم از فرمان zipper استفاده کنیم.
$ sudo zypper install xz
نمونهها
اکنون که xz را نصب کردهایم، میتوانیم به صورت مستقیم از فرمان tar به صورت زیر برای استخراج فایلی به نام linux-5.6.13.tar.xz استفاده کنیم.
$ tar -xf linux-5.6.13.tar.xz $ tar -xvf linux-5.6.13.tar.xz $ tar -Jxvf linux-5.6.13.tar.xz ## extract tar.xz files aka .txz file ## $ tar --xz -xf archive.txz
استخراج یک فایل خاص از آرشیو tar.xz
میتوانیم با فرمت زیر، یک فایل خاص را از آرشیو backup.tar.xz خارج کنیم.
$ tar -xf backup.tar.xz resume.pdf $ tar -xf backup.tar.xz babys-3rd-cake-day.jpg sales.txt
امّا گاهی نام فایل را به صورت کامل ندانیم. بنابراین، ابتدا باید با گزینه –t لیستی از محتویات آرشیو تهیه کنیم.
$ tar -tvf backup.tar.xz ## filter out tar listing option using the grep command/egrep command ## $ tar -tvf backup.tar.xz | grep file1 $ tar -tvf backup.tar.xz | egrep 'file.txt|data.doc|cake.jpg'
نمونه خروجی
drwxrwxr-x root/root 0 2020-05-14 11:29 linux-5.6.13/ -rw-rw-r-- root/root 15844 2020-05-14 11:29 linux-5.6.13/.clang-format -rw-rw-r-- root/root 59 2020-05-14 11:29 linux-5.6.13/.cocciconfig -rw-rw-r-- root/root 71 2020-05-14 11:29 linux-5.6.13/.get_maintainer.ignore -rw-rw-r-- root/root 62 2020-05-14 11:29 linux-5.6.13/.gitattributes -rw-rw-r-- root/root 1746 2020-05-14 11:29 linux-5.6.13/.gitignore -rw-rw-r-- root/root 15266 2020-05-14 11:29 linux-5.6.13/.mailmap -rw-rw-r-- root/root 496 2020-05-14 11:29 linux-5.6.13/COPYING -rw-rw-r-- root/root 99724 2020-05-14 11:29 linux-5.6.13/CREDITS drwxrwxr-x root/root 0 2020-05-14 11:29 linux-5.6.13/Documentation/ -rw-rw-r-- root/root 13 2020-05-14 11:29 linux-5.6.13/Documentation/.gitignore drwxrwxr-x root/root 0 2020-05-14 11:29 linux-5.6.13/Documentation/ABI/ -rw-rw-r-- root/root 3821 2020-05-14 11:29 linux-5.6.13/Documentation/ABI/README
اگر میخواهید تمام فایلهای سورسکد Perl یا Python را استخراج کنید، فرمانهای زیر به کار شما میآیند.
$ tar --wildcards '*.py' -xvf webroot.tar.xz $ tar --wildcards '*.pl' -xvf centos-7-sysadmin-scripts.txz
مفهوم گزینههای فرمان tar
-x : استخراج یا دریافت فایل از یک آرشیو
-f archive.tar.xz : استفاده از این آرشیو یا دستگاه برای استخراج فایل
-J OR –xz : فیلتر کردن آرشیو در فرمان ایکسزد. بر این اساس، ما ایکسزد را از طریق برنامه مدیریت بستهها نصب میکنیم.
-v : حالت گسترده و نمایش فرآیند.
-t : لیستکردن فایل درون آرشیو ذخیره شده
–wildcards : در حالت عادی «وایلدکارت»ها کارآیی اصلی خود را نخواهند داشت. بنابراین، برای استخراج فایلها میتوانید این گزینه را به کار ببرید.
به عنوان مثال برای استخراج تمام تصاویر با پسوند .webp میتوان از گزینه –wildcards ‘*.webp’ در فرمان tar استفاده کرد.
نحوه استخراج فایلهای tar.xz با استفاده از فرمان xz
تا به اینجا در مورد استخراج فایلهای tar.xz با استفاده از فرمان tar صحبت کردیم. ولی باید توجه داشت که میتوان مستقیماً از فرمان xz نیز برای فشردهسازی و استخراج فایلها نیز استفاده کرد. فرمان tar با فراخوانی داخلی xz یا با یک API ارائه شده توسط libs کارها را انجام میدهد. اکنون بیایید چند نکته و ترفند در مورد فرمان xz مرور کنیم.
از حالت فشرده خارجکردن فایل .tar.xz
$ xz --decompress filename.tar.xz $ xz -v -d archives.tar.xz
استخراج فایل با mysql.sql.xz و جایگزین شده با mysql.sql
$ xz -v -d mysql.sql.xz
فشردهسازی tarball به عنوان فایل tar.xz
فشردهکردن یک فایل با نام mysql.sql و جایگزین آن با mysql.sql.x به منظور صرفهجویی در فضای دیسک.
$ xz mysql.sql
قالب کار برای یک tarball به صورت زیر خواهد بود.
$ xz -v -z filename.tar
به همین ترتیب میتوانید از فرمان tar برای مقاصد گوناگون استفاده کنید.
$ tar -cvJf {your-filename-here.tar.xz} file1 file2 $ tar -cvJf {your-filename-here.tar.xz} /path/to/dir1 ./dir2 $ sudo tar -cvJf /efs/backups/14-05-2020/production-webroot.tar.xz /var/www/ $ sudo tar --xz -cvf /efs/backups/aws-us-west-www-prod-42-etc.txz /etc/
جمعبندی
در این آموزش کوتاه، نحوه استخراج فایلهای tar.xz و .txz که فرمتهای محبوبی در سیستمعامل لینوکس هستند را مرور کردیم. به خاطر داشته باشید که فرمان tar در صورتی کار میکند که xz در سیستم با پکیج منیجر نصب شده باشد. برای کسب اطلاعات بیشتر در مورد پروژه xz میتوانید به صفحه رسمی این پروژه نیز مراجعه کنید.
منبع: Cybercity.biz