هیچ محصولی در سبد خرید وجود ندارد.

آموزش کامل مدیریت فایل در لینوکس: ایجاد، حذف، ویرایش، کپی، انتقال و مشاهده محتوا با دستورات cat، cp، mv، rm، nano و vim.
جدول محتوا [نمایش]
در لینوکس، مدیریت فایلها یکی از پرکاربردترین مهارتهاست. در این مقاله یاد میگیرید چطور فایلها را ایجاد، حذف، ویرایش، کپی، انتقال دهید و محتوای آنها را مشاهده کنید. این آموزش شامل تمام دستورات پایه و کاربردی برای کار با فایلها در محیط ترمینال لینوکس است.
آموزش برنامه نویسی در سایت دیزاین مشهد
برای ایجاد فایل در لینوکس چند روش وجود دارد. متداولترین آنها دستورات touch و cat هستند.
دستور touch: برای ایجاد فایل خالی استفاده میشود یا زمان آخرین ویرایش فایل موجود را بهروزرسانی میکند.
touch file1.txtدستور cat: معمولاً برای نمایش محتواست اما میتوان از آن برای ایجاد فایل هم استفاده کرد.
cat > file2.txtسپس متن را تایپ کرده و با ترکیب کلیدهای Ctrl + D ذخیره و خارج شوید.
برای حذف فایلها از دستور rm استفاده میشود:
rm file1.txtاگر میخواهید بدون تأیید حذف شود:
rm -f file1.txtدر لینوکس دو ویرایشگر متنی محبوب وجود دارد: nano و vim.
ویرایش با nano: ساده و کاربرپسند.
nano file2.txtویرایش با vim: قدرتمند و حرفهایتر.
vim file2.txtدرون Vim:
:w → ذخیره فایل
:wq → ذخیره و خروج
:q! → خروج بدون ذخیره
cpبرای ایجاد نسخهای از فایل از دستور cp استفاده کنید:
cp file2.txt copy_file.txtبرای کپی کل پوشهها به همراه محتوایشان:
cp -r dir1 dir2mvانتقال فایل به پوشه دیگر:
mv file2.txt Documents/تغییر نام فایل:
mv file2.txt renamed_file.txtcatبرای نمایش محتوای کامل فایل:
cat file2.txtmoreبرای مشاهده محتوا به صورت صفحهبهصفحه:
more file2.txtکلید Space برای صفحه بعد و q برای خروج.
lessمشابه more است اما میتوان به بالا و پایین پیمایش کرد:
less file2.txtبرای خروج q را بزنید.
headنمایش خطوط ابتدایی فایل (بهصورت پیشفرض ۱۰ خط):
head file2.txtبرای تعیین تعداد خطوط خاص:
head -n 5 file2.txttailنمایش آخرین خطوط فایل:
tail file2.txtتعیین تعداد خطوط خاص:
tail -n 5 file2.txtمشاهده زنده (مفید برای فایلهای لاگ):
tail -f logfile.txtدر سطح تخصصی، دستورات سادهی مدیریت فایلها به مباحث عمیقتری مانند ورودی/خروجی مستقیم (Direct I/O)، قفلهای هسته، فایلسیستمهای همپوشان (overlayfs) و فایلسیستمهای فضایکاربری (FUSE) گره میخورند که پاسخگوی سوالات چالشبرانگیز مطرحشده هستند.
رفتار پیشرفته در EXT4، O_DIRECT و fallocate: در EXT4، ترکیب پرچم O_DIRECT (برای I/O مستقیم و عبور از کش صفحه) با عملیات fallocate از نوع FALLOC_FL_COLLAPSE_RANGE (که برای حذف بخشهایی از فایل و فشردهسازی آن استفاده میشود) میتواند به یک بنبست پنهان (AB-BA deadlock) منجر شود. این اتفاق زمانی رخ میدهد که قفلهای inode->i_dio_count (شمارندهی عملیاتهای I/O مستقیم) و inode->i_mapping->i_mmap (قفل نگاشت حافظه) به ترتیب وارونه گرفته شوند. درک این وابستگیها برای عیبیابی مشکلات کارایی و هنگکردن سیستم در سرورهای با بار بالا حیاتی است.
overlayfs و متادیتا (metacopy): در overlayfs، گزینهی metacopy=on به کرنل اجازه میدهد تا ابردادههای فایل (مانند اندازه، زمانها و مجوزها) را در لایهی بالایی (upper) ذخیره کند، در حالی که دادههای واقعی در لایهی پایینتر (lower) باقی میمانند. هنگام باز کردن یک فایل با open(O_RDONLY) که فقط متادیتا در لایهی بالایی دارد، تابع کرنلی ovl_maybe_copy_up_data تعیین میکند که آیا نیاز به کپیکردن دادهها از لایهی پایینتر به لایهی بالایی (که به آن copy-up گفته میشود) وجود دارد. این مکانیسم نقش کلیدی در بهینهسازی فضای ذخیرهسازی در کانتینرها ایفا میکند.
FUSE و چالشهای I/O مستقیم: در فایلسیستمهای فضایکاربری (FUSE)، اگر فایلی با پرچم FUSE_DIRECT_IO باز شود و همزمان تابع fuse_invalidate_attr برای بیاعتبارسازی ویژگیهای فایل فراخوانی گردد، قفل fi->lock (قفل درون ساختار fuse_inode) میتواند باعث خواب (sleep) غیرمنتظره در تابع fuse_read_iter شود. این مسئله یکی از چالشهای رایج در رفعاشکال برنامههایی است که از FUSE برای پیادهسازی سیستمفایلهای سفارشی مانند sshfs یا encfs استفاده میکنند.
I/O غیرهمگام با io_uring: در کنار دستورات سنتی، io_uring یک API پیشرفته برای انجام عملیاتهای ورودی/خروجی غیرهمگام روی فایلها است. این رابط با کاهش تعداد تماسهای سیستمی (syscall) و استفاده از صفهای حلقوی مشترک بین کاربر و هسته، کارایی فوقالعادهای در برنامههای با تراکنشهای بالای فایل (مانند پایگاهدادهها و وبسرورها) ارائه میدهد و جایگزینی مدرن برای epoll و aio محسوب میشود.
در این مقاله یاد گرفتید چطور فایلها را در لینوکس ایجاد، حذف، ویرایش، کپی، جابهجا و مشاهده کنید. با تمرین روی این دستورات، میتوانید در مدیریت فایلها به تسلط کامل برسید و کارهای روزمره خود را سریعتر انجام دهید. همچنین با مفاهیم پیشرفتهتری مانند قفلهای هسته در EXT4، مکانیسم copy-up در overlayfs، چالشهای FUSE و مدل I/O غیرهمگام io_uring آشنا شدید که شما را برای عیبیابی و بهینهسازی در محیطهای تولیدی آماده میکند.
۱. تفاوت بین cat، more و less چیست؟
دستور cat تمام محتوا را یکجا نشان میدهد، more محتوا را صفحهبهصفحه، و less امکان پیمایش بالا و پایین را فراهم میکند.
۲. چگونه فایل را بدون باز کردن ویرایش کنیم؟
میتوانید با echo محتوای دلخواه را مستقیماً در فایل بنویسید:
echo "Hello Linux" > myfile.txt۳. آیا حذف فایلها با rm قابل بازگشت است؟
خیر. دستور rm فایل را بهطور دائم حذف میکند. پس حتماً قبل از اجرای آن، از مسیر و نام فایل مطمئن شوید.
۴. چطور میتوان محتوای یک فایل را به فایل دیگر اضافه کرد؟
با استفاده از اپراتور دو علامت بزرگتر:
cat file1.txt >> file2.txt۵. دستور tail -f برای چیست؟
این دستور محتوا را در لحظه (Real-time) نمایش میدهد و معمولاً برای بررسی فایلهای لاگ سیستم استفاده میشود.