کالج اورست : اولین آموزشگاه تخصصی هوش مصنوعی، برنامه نویسی، شبکه و کامپیوتر در کرج با بیش از 17000 فارغ التحصیل (تاسیس 1388 )

بررسی دستور cpio همراه با پیاده سازی عملی در لینوکس

بررسی دستور cpio همراه با پیاده سازی عملی در لینوکس

  • 1399/8/24
  • مقالات آموزش لینوکس
  • 1088 بازدید

دستور cpio نیز همانند دستور tar در لینوکس برای آرشیو کردن فایل مورد استفاده قرار می گیرد.همچنین در سناریوهای گرفتن بک آپ از فایل ها و فولدرهای یک مسیر خاص مورد استفاده قرار می گیرد.در صورتی که بخواهیم چندین فایل و فولدر را در لینوکس به صورت تنها یک فایل آرشیو داشته باشیم از دستور cpio استفاده می شود

این دستور از ورودی استاندارد آدرس یکسری فایل و فولدر را می گیرد و بعد از اینکه آرشیو را ایجاد کرد آن را در خروجی استاندارد می ریزد به مثال زیر توجه نمایید

Find /etc/apache2 | cpio –o > test.cpioدستور more در لینوکس

در مثال فوق دستور find در لینوکس تمامی فایل ها وفولدرهای مسیر /etc/apache2 را در ورودی می گیرد سپس توسط دستور pipe آن را به دستور cpio می دهد آرشیو انجام می شود و در نهایت خروجی در یک فایل ای بنام test.cpio قرار می گیرد که همان فایل ارشیو شده ما می باشد

 

حال در صورتی که تمامی فایل ها و فولدرهای مسیر /etc/apache2 حذف گردد با دستور cpio می توان مجدد تمامی فایل های حذف شده را به همان مسیر اصلی اکسترکت کرد.

 


Rm –rf /etc/apache2/*

Cpio –id < test.cpio

با آپشن –d تمامی فولدرها در زمان اکسترکت نیز ایجاد می شود چون به صورت پیش فرض در زمان اکسرکت کردن توسط دستور cpio فولدر ها ایجاد نمی شود

نکته بسیار مهمی که بایستی دقت داشته باشیم این است که در استفاده از دستور cpio نمی توانیم مشخص نماییم که فایل ها در یک مسیر خاصی extract شوند.در زمان ورودی دادن بایستی دقت کنیم در صورتی که مسیرها با / آغاز گردند(absolute path) در زمان اکسترکت هم به همان مسیر اولیه فایل ها اکسترکت خواهند شد در صورتی که مسیرها بدون / شروع شوند(relative path ) عمل اکسترکت در همان مسیر جاری (دایرکتوری جاری ) extract خواهند شد

در ادامه مثالی را بررسی می کنیم.مسیرهای ما در این مثال relative هستند

Cd /

Find etc/apache2 | cpio –o > apache2.cpio

حال در صورتی که بخواهیم عمل extract را انجام دهیم با توجه به اینکه در زمان ورودی مسیرهای ما relative بودند در مسیر اولیه یعنی etc/apache2 اکسترکت نخواهند شد بلکه در همان دایرکتوری و مسیر جاری extract خواهند شد.

4.3 stars – 57 reviews