split - تقسیم فایل به قطعات کوچک‌تر

split - از این دستور برای تقسیم یک فایل به قطعات کوچکتر استفاده می شود.

شکل کلی دستور:

$ split [options] [input] [prefix]

شاید برای شما دوستان هم پیش آمده که یک فایل بزرگ را بخواهید به قطعات کوچک‌تر تقسیم کنید. دستور split در ساده‌ترین روش این کار را برای شما انجام می دهد.

برای شروع کار، من در میزکارم یک پوشه با نام test درست کردم و داخل آن یک فایل با نام myfile وبه فرمت پی دی اف با حجم تقریبی 2.8MB  کپی کرده ام:

$ ls -l /home/name/Desktop/test
total 2736
-rw-rw-r-- 1 name name 2800039 Feb 12 23:17 myfile.pdf

در ساده‌ترین شکل استفاده از این دستور می توان چنین مثالی آورد:

مثال:

$ cd /home/name/Desktop/test
~/Desktop/test$ split myfile.pdf

همین‌طور که می‌بینید، من ابتدا با دستور cd به مسیر پوشه‌ی test رفتم، چرا که اگر این کار را انجام ندهم فایل‌های حاصلِ بخش بخش شده، به صورت خودکار به مسیر پوشه ی خانه‌ی شما خواهند رفت.

مثال:

$ split /home/name/Desktop/test/myfile.pdf

به هرحال شما خروجی یکسانی خواهید داشت. خروجی شما به صورت زیر خواهد بود:

xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak  xal  xam

بله! به صورت پیش‌فرض، نام‌ها به این صورت هستند که با یک xa شروع می‌شوند و برای هر تکه به ترتیب از حروف الفبای انگلیسی استفاده می‌کنند.

در مرحله‌ی بعد، حرف a به b وبه همین صورت تا آخر ادامه پیدا می‌کند.

مثال:

$ split -b 10000 myfile.pdf

$ls -l
xaa  xas  xbk  xcc  xcu  xdm  xee  xew  xfo  xgg  xgy  xhq  xii  xja  xjs  xkk
xab  xat  xbl  xcd  xcv  xdn  xef  xex  xfp  xgh  xgz  xhr  xij  xjb  xjt  xkl
xac  xau  xbm  xce  xcw  xdo  xeg  xey  xfq  xgi  xha  xhs  xik  xjc  xju  xkm
xad  xav  xbn  xcf  xcx  xdp  xeh  xez  xfr  xgj  xhb  xht  xil  xjd  xjv  xkn
xae  xaw  xbo  xcg  xcy  xdq  xei  xfa  xfs  xgk  xhc  xhu  xim  xje  xjw  xko
xaf  xax  xbp  xch  xcz  xdr  xej  xfb  xft  xgl  xhd  xhv  xin  xjf  xjx  xkp
xag  xay  xbq  xci  xda  xds  xek  xfc  xfu  xgm  xhe  xhw  xio  xjg  xjy  xkq
xah  xaz  xbr  xcj  xdb  xdt  xel  xfd  xfv  xgn  xhf  xhx  xip  xjh  xjz  xkr
xai  xba  xbs  xck  xdc  xdu  xem  xfe  xfw  xgo  xhg  xhy  xiq  xji  xka  xks
xaj  xbb  xbt  xcl  xdd  xdv  xen  xff  xfx  xgp  xhh  xhz  xir  xjj  xkb  xkt
xak  xbc  xbu  xcm  xde  xdw  xeo  xfg  xfy  xgq  xhi  xia  xis  xjk  xkc  xku
xal  xbd  xbv  xcn  xdf  xdx  xep  xfh  xfz  xgr  xhj  xib  xit  xjl  xkd
xam  xbe  xbw  xco  xdg  xdy  xeq  xfi  xga  xgs  xhk  xic  xiu  xjm  xke
xan  xbf  xbx  xcp  xdh  xdz  xer  xfj  xgb  xgt  xhl  xid  xiv  xjn  xkf
xao  xbg  xby  xcq  xdi  xea  xes  xfk  xgc  xgu  xhm  xie  xiw  xjo  xkg
xap  xbh  xbz  xcr  xdj  xeb  xet  xfl  xgd  xgv  xhn  xif  xix  xjp  xkh
xaq  xbi  xca  xcs  xdk  xec  xeu  xfm  xge  xgw  xho  xig  xiy  xjq  xki
xar  xbj  xcb  xct  xdl  xed  xev  xfn  xgf  xgx  xhp  xih  xiz  xjr  xkj

نکته: چون من در مسیر پوشه ی test هستم، پس نیازی به وارد کردن آدرس پوشه ی test در قسمت جلوی دستور ls نیست.

شما می‌توانید نام پیشوندی به‌صورت پیش‌فرض را در صورت تمایل تغییر دهید (گزینه‌های اختیاری استفاده شده در انتها توضیح داده شده است):

$ split -b 1M myfile.pdf prefix

که در این صورت نام پیشوندی به prefix تغییر خواهد کرد و به دنبال آن دو حروف الفبای انگلیسی استفاده خواهد شد، که خروجی آن را قسمت پایین می‌بینید:

$ ls
myfile.pdf  prefixaa  prefixab  prefixac

برای اتصال فایل‌ها به یکدیگر می توانید از دستور cat استفاده کنید:

$ split -b 1M myfile.pdf prefix
$ ls
myfile.pdf prefixaa  prefixab  prefixac
$ cat prefixaa prefixab prefixac > newmyfile.pdf
$ ls
myfile.pdf  newmyfile.pdf  prefixaa  prefixab  prefixac

در دستورات بالا، دستور cat به ما کمک خواهدکرد که فایل‌های تکه تکه شده را به صورت اولیه بازگردانیم. من برای فایل جدید نام جدیدی را در نظر گرفتم (newmyfile.pdf). همین‌طور که در خروجی دستور ls می‌بینید من دو فایل یکسان دارم، که یکی همان فایل اصلی ما، و دیگری فایل حاصل از دستور cat می‌باشد.

نکته: این دستورات داخل پوشه‌ای که ابتدا درست کردیم (test) اجرا می‌شوند، به عبارت دیگر ما ابتدا با دستور cd به مسیر مورد نظر رفته و دستورات را اجرا می‌کنیم.

گزینه‌های اختیاری:

b-: از این گزینه‌ی اختیاری برای مشخص کردن مقدار هرتکه بر اساس بایت استفاده می‌شود.

مثال:

$ split -b 1000000 myfile.pdf

استفاده از بایت باعث افزایش دقت شما در تکه تکه کردن هرفایل می‌شود، ولی اگر مایل بودید می‌توانید به شکل زیر برای استفاده از یکای اطلاعات مگابایت بهره ببرید:

$ split -b 1M myfile.pdf

که دراین حالت خروجی با حالت قبلی یکسان خواهد بود:

$ ls -l
total 5472
-rw-rw-r-- 1 name name 2800039 Feb 12 23:17 myfile.pdf
-rw-rw-r-- 1 name name 1048576 Apr 18 13:32 xaa
-rw-rw-r-- 1 name name 1048576 Apr 18 13:32 xab
-rw-rw-r-- 1 name name  702887 Apr 18 13:32 xac

d-: همین‌طور که مطلع هستید، شمارش فایل‌های تکه تکه شده بر اساس حروف الفبای انگلیسی است. با این گزینه، می‌توان شمارش فایل های تکه تکه شده را بر اساس اعداد شمارگذاری کرد.

مثال:

$ split -b 1M -d myfile.pdf prefix
$ ls
myfile.pdf  prefix00  prefix01  prefix02