لینوکسی بشیم: مدیریت فایل‌ها و کار در فایل سیستم لینوکس - قسمت دوم

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

در این نوشته فرض میشه شما با فایل سیستم و خط فرمان لینوکس آشنایی دارید. دستورات و توضیحات قسمت قبلی رو هم بخونید تا همه تو یه قایق باشیم.

اولین دستور mv هست. با mv که مخفف move هست فایل یا پوشه از مبدا به مقصد جابه‌جا میشه. مثل cut and paste میمونه. مانند کپی مسیر مبدا و مقصد رو میگیره:

توی تصویر بالا اول پوشه dir در پوشه بالایی وجود داره اما بعد از move فقط در paasino وجود داره.

از mv برای تغییر نام یه فایل یا rename کردن میشه استفاده کرد:

عین قبل اول اسم فایل اصلی و بعدش اسم جدید فایل.

دستور بعدی ما rm هستش؛ مخفف remove. باهاش یک فایل حذف میشه:

می‌تونیم برای حذف محتویات پوشه هم ازش استفاده کنیم. با آپشن r- این کار رو می‌کنیم:

آپشن r خیلی جاها به معنی recursive هست. تو اینجا به شکل بازگشتی میره و فایل‌ها و پوشه‌ها رو پاک می‌کنه. تو عکس بالا اول محتویات داخل پوشه logs رو نشون دادم و بعد با آپشن r- حذفش کردم که همه چی توش حذف شد.

برای حذف پوشه‌ی خالی از rmdir استفاده می‌کنیم:

در این تصویر یه پوشه خالی به نام logs داشتم و با rmdir حذفش کردم.

برای ساخت فایل و پوشه چی کار کنیم؟ اول فایل رو میگم. دستور touch برای ما یه فایل رو می‌سازه:

یه کار دیگه هم برای ساخت فایل می‌کنن که استفاده از echo هست:

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

برای پوشه دستور mkdir رو داریم:

اگر خواستیم چند تا پوشه همزمان ساخته بشه اسم اونا رو با فاصله جلوش می‌ذاریم.

یه موقعی هست می‌خوام پوشه‌ای بسازم که پوشه‌ی والدش وجود نداره. مثلا می‌خوام paasino/dir1/subdir1 رو بسازم ولی paasino/dir1 وجود نداره. یه راهش اینه که اول paasino/dir1 رو بسازم. راه دیگه اینه که از آپشن p- استفاده کنم:

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

مبحث بعدی این قسمت file globbing نام داره. این ویژگی در بش وجود داره. برای شل‌های دیگه به مستنداتشون مراجعه کنید. با این ویژگی میشه اسم فایل‌ها رو به شکل الگو نوشت. چیزی شبیه regex هست با قواعد خاص خودش. اگر بخوام بگم در جایی از اسم فایل یک حرف باشه و مهم نیس خود حرف چی باشه از ? استفاده می‌کنم:

اینجا گفتم مهم نیست سه حرف اولش چیه. فقط بعد از اون سه حرف log. اومده باشه. اگر بخوام صفر یا بیشتر حرف رو بگم * میذارم:

اینجا گفتم فقط آخرش log. باشه و مهم نیست قبلش چند تا حرف باشه. از { } برای دادن چند تا کلمه استفاده می‌کنم:

تو تصویر گفتم سه تا پوشه بساز که اول اسم همه‌شون -dir هست و در ادامه one و two و three. دقت کنید این یه ویژگی بش هست و با هر دستوری میشه استفاده کرد.

در نهایت بیاید دو تا دستور برای بررسی بیشتر فایل ببینیم. اولیش دستور file هست:

اطلاعاتی در مورد فرمت محتوای فایل به ما میده. تو لینوکس این اطلاعات از extension آخر فایل به دست نمیاد و تغییر دادنش تاثیر خاصی از نظر سیستم عامل روی فرمت فایل نمی‌ذاره. مثلا اگه یه فایل آخرش pdf باشه دستور file به اون نگاه نمی‌کنه و به خود فایل نگاه میکنه. به این دلیل تو لینوکس extension فایل رو چیزی میذاریم که خودمون راحت‌تریم و معنی‌دارتر هست. تو مثال بالا میگه این یه فایل متنی ascii هست.

دستور بعدی stat هست که اطلاعات دیگه‌ای بهمون در مورد فایل میده:

این اطلاعات داخل یه چیزی به نام inode ذخیره میشه که برای هر فایل در فایل سیستم وجود داره. می‌بینید که اطلاعاتی از جمله زمان تغییرات فایل و اندازه‌ی اون در دیسک ارائه میکنه.

بحث ما در زمینه این دستورها تموم شد. سعی کنید تمرین کنید تا یادتون بمونه. امیدوارم براتون مفید بوده باشه. اگرم سوال یا نظری دارید این پایین بفرمایید.

قسمت قبلی

قسمت بعدی