سرفصل‌های آموزشی
آموزش لینوکس
کار با فایل‌ها از طریق کامند لاین لینوکس

کار با فایل‌ها از طریق کامند لاین لینوکس

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

کامند کاربرد cat برای نمایش فایل‌هایی که خیلی طولانی نیستند. tac نمایش محتوای فایل از آخر به اول less برای نمایش محتوای فایل‌های حجیم. این برنامه محتویات را بسته به فضای نمایش به صفحات مختلفی تقسیم‌بندی کرده و امکان رفتن به صفحات قبل/بعد را به کاربران می‌دهد. tail نمایش ده خط آخر یک فایل. با استفاده از آپشن عددی و آوردن یک عدد -مثلا ۱۵- می‌توان مقدار پیش‌فرض را مدیریت کرد. head عکس دستور tail است به طوری که ۱۰ خط اول یک فایل را نمایش می دهد.

آشنایی با دستورات touch و mkdir

دستور touch معمولاً برای تغییر زمان درج شده روی یک فایل مورد استفاده قرار می گیرد. به صورت پیش فرض، touch زمان ایجاد یک فایل را به زمان کنونی سیستم عامل تغییر می دهد. علاوه بر این، با استفاده از دستور touch می‌توان یک فایل خالی و بدون هیچ گونه محتویاتی ایجاد کرد:

touch test.txt

به طور مثال، دستور فوق یک فایل خالی به نام test با پسوند txt. ایجاد می کند. دستور touch آپشن های مختلفی دارد که یکی از کاربردی ترین آن‌ها آپشن t- است؛ این آپشن امکانی را برایمان فراهم می‌سازد تا بتوان تاریخ و زمان خاصی را به یک فایل اختصاص داد:

touch -t 03201600 test.txt

دستور فوق زمان تاریخ و زمان مرتبط با این فایل را به ساعت ۴ بعد از ظهر ۲۰ ماه مارس سال ۱۶۰۰ باز می گرداند.

دستور mkdir هم برای ساخت یک دایرکتوری جدید مورد استفاده قرار می گیرد. محل ساخت دایرکتوری هم به صورت پیش‌فرض مکانی است که داخل آن قرار داریم اما اگر بخواهیم به محل خاصی برای ایجاد دایرکتوری جدید اشاره کنیم، می‌توان آدرس مد نظر را قبل از نام انتخابی برای دایرکتوری نوشت:

mkdir /usr/sample

دستور فوق یک دایرکتوری جدید تحت عنوان sample داخل دایرکتوری usr که داخل روت قرار گرفته است می سازد. برای حذف یک دایرکتوری هم به سادگی می‌توان از دستور rmdir استفاده کرد:

rmdir /usr/sample

توجه داشته باشیم که دستور rmdir تنها زمانی قابل اجرا است که دایرکتوری مد نظر خالی باشد که در غیر این صورت امکان حذف دایرکتوری را نخواهیم داشت.

حذف یک فایل/دایرکتوری با استفاده از دستور rm

برای حذف یک فایل در لینوکس، باید از دستور rm استفاده کرد. در صورتی که بخواهیم فایلی را به زور پاک کنیم، آپشن f- را می بایست پس از دستور rm استفاده کرد. در صورتی هم که بخواهیم پیش از حذف فایل، سؤالی از ما پرسیده شود که آیا مطمئن هستیم که قصد حذف فایل را داریم یا خیر، می بایست از آپشن I- پس از دستور rm استفاده کنیم. در صورتی هم که بخواهیم یک دایرکتوری که حاوی یکسری فایل و یا یکسری دایرکتوری دیگر است را پاک کنیم، می بایست از آپشنی تحت عنوان r- استفاده نماییم. به طور مثال، فرض کنیم دایرکتوری قبلی تحت عنوان sample که ایجاد کردیم، حاوی یکسری فایل ها و یا دایرکتوری های دیگر است؛ برای این منظور، می بایست از دستور زیر استفاده کرد:

rm -rf /usr/sample

از طریق دستور فوق، می توان یک دایرکتوری تحت عنوان sample که داخل دایرکتوری usr داخل root قرار گرفته باشد و در عین حال حاوی فایل/دایرکتوری های دیگری باشد را به صورت کامل حذف کرد.

تغییر نام/جابجایی فایل ها و دایرکتوری ها در لینوکس از طریق کامند mv

برای تغییر نام یک فایل در لینوکس، می بایست از دستور mv استفاده کرد. علاوه بر این، دستور mv برای جابجا کردن فایل ها و یا دایرکتوری ها نیز مورد استفاده قرار می گیرد. فرض کنیم روی دسکتاپ یک دایرکتوری داریم تحت عنوان sample که داخل آن سه دایرکتوری دیگر تحت عناوین test1، test2 و test3 است. حال قصد داریم دایرکتوری test3 را به داخل دایرکتوری test1 انتقال دهیم. برای این منظور، کامند زیر را مورد استفاده قرار می دهیم:

mv test3 test1

ابتدا وارد مسیر دسکتاپ سپس دایرکتوری sample می شویم؛ پس از آن که داخل این دایرکتوری قرار گرفتیم، ابتدا دستور mv را نوشته سپس نام دایرکتوری که قصد داریم آن را جابجا کنیم -در این مثال test3- را می نویسیم سپس نام دایرکتوری مقصد -در این مثال دایرکتوری test1- که قصد داریم دایرکتوری test3 را به داخل آن انتقال دهیم می نویسیم. از این پس، دایرکتوری sample حاوی دایرکتوری های test1 و test2 است که دایرکتوری test1 حاوی دایرکتوری دیگری تحت عنوان test3 است.

پیش از این گفتیم که دستور mv علاوه بر جابجا کردن فایل ها و یا دایرکتوری ها، برای Rename (تغییر نام) هم به کار گرفته می شود. به عنوان نمونه، در صورتی که بخواهیم دایرکتوری test3 که داخل test1 قرار دارد را به نام جدیدی همچون newname تغییر دهیم، می بایست از دستور زیر استفاده نماییم:

mv test3 newname

ابتدا وارد دایرکتوری test1 شده سپس دستور فوق را وارد می نماییم؛ همان طور که ملاحظه می شود، ابتدا کامند mv را نوشته و نام دایرکتوری که قصد داریم نامش را تغییر دهیم -test3- را می نویسیم سپس نام جدید -newname- را وارد نموده و اینتر می کنیم.

آشنایی با کامند diff در لینوکس

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

آپشن کاربرد c- ارائه دهنده ی لیستی از تفاوت‌ها به همراه ۳ خط از محتوای فایل‌ها قبل و بعد از محتواهایی که تفاوت دارند. r- مقایسه به صورت Recursive یا «بازگشتی» دایرکتوری های زیرشاخه و همچینن محتوای آن‌ها i- نادیده گرفتن بزرگی و کوچکی حروف w- نادیده گرفتن تفاوت‌ها در اسپیس ها و تب ها (به طور کلی فاصله ها)

به طور کلی، به منظور مقایسه کردن دو فایل از طریق کامند لاین، از ساختار زیر باید تبعیت کرد:

diff firstfile secondfile

همان طور که در نمونه دستور فوق مشاهده می شود، ابتدا کامند diff که از واژه ی Difference (به معنی تفاوت) گرفته شده است را نوشته، سپس نام اولین فایل را نوشته و در نهایت نام فایل دومی که می خواهیم آن را با اولین فایل مقایسه کنیم می نویسیم. برای روشن تر شدن کاربرد کامند diff، دو فایل داخل یک دایرکتوری دلخواه تحت عناوین file1 و file2 می سازیم و محتوایی دلخواه داخل آن ها می نویسیم. اکنون کامند زیر را اجرا می کنیم:

diff file1 file2

به عنوان خروجی دستور فوق، داریم:

1c1
< Contents in first file
---
> Contents in the second file

گاهی اوقات برایمان پیش می‌آید که نیاز داریم تا در آن واحد ۳ فایل مجزا را با یکدیگر مقایسه کنیم که در چنین مواقعی از کامند diff3 استفاده خواهیم کرد؛ این دستور یک فایل را به عنوان Refrence (رفرنس یا مرجع) در نظر گرفته و دو فایل دیگر را با آن مقایسه می‌کند. کامند استفاده از دستور diff3 به شرح زیر است:

diff3 MY-FILE COMMON-FILE YOUR-FILE

در لینوکس، پسوند فایل‌ها آن طور که در سایر سیستم عامل ها برای دسته بندی فایل‌ها مورد استفاده قرار می‌گیرد، به کار گرفته نمی‌شود. به طور مثال، فایلی تحت عنوان file.txt هرگز بدان معنا نیست که یک فایل تکست بوده و هرگز نمی‌توان آن را اجرا کرد.

در لینوکس، نام فایل بیش از آن که برای سیستم عامل معنا و مفهوم داشته باشد، برای کاربران لینوکس با‌معنا است. به عبارت دیگر، بسیاری از اپلیکیشن ها به جای مد نظر قرار دادن پسوند فایل، محتوای فایل را مد نظر قرار می‌دهند و بر آن اساس تصمیم می‌گیرند که چه رفتاری با فایل مد نظر باید داشته باشند. این رویکرد کاملاً در نقطه ی مقابل رویکردی است که در سیستم عامل ویندوز به کار گرفته شده است به طوری که برای مثال، پسوند exe. حاکی از فایلی باینری است که می‌توان آن را اجرا کرد.

با دستور file می‌توان به ماهیت واقعی یک فایل در لینوکس پی برد. این دستور محتویات فایل به علاوه ی یکسری ویژگی‌های دیگر فایل را مد نظر قرار داده و در نهایت مشخص می‌سازد که آیا یک فایل تکست خالی، لایبرری، برنامه ی قابل اجرا، اسکریپت و یا چیزی دیگر است.

online-support-icon