فایل، پوشه و پسوند فایل
فایل یک رشته بایت است که یک نام دارد، و پوشه فقط فهرستی از نام هاست. پسوند فایل، یعنی حروف بعد از آخرین نقطه، هیچ ربطی به محتوای واقعی فایل ندارد: فقط به سیستم عامل می گوید با کدام برنامه بازش کند.
- درس ۵ از ۱۲
- مقدماتی
- رایگان، بدون ثبت نام
یک ریشه و چهار شاخه، نه بیشتر
شماره ابتدای نام پوشه ها فقط برای این است که ترتیبشان همانی بماند که شما می خواهید، نه ترتیب الفبا.
-
01-مشتری ها
هر مشتری یک پوشه، با همان نامی که در فاکتور نوشته اید
-
02-پروژه های جاری
فقط کاری که این ماه دستتان است؛ اگر بزرگ شد یعنی چیزی تمام شده و منتقل نشده
-
03-آرشیو
پروژه تمام شده به اینجا منتقل می شود، پاک نمی شود
-
04-شخصی
هرچه به کار ربط ندارد، تا با بکاپ کاری قاطی نشود
این یک نمونه است نه یک استاندارد. اگر کارتان شکل دیگری دارد شاخه ها را عوض کنید، ولی تعدادشان را کم نگه دارید و از سه سطح پایین تر نروید.
آخرین بررسی: فکت ها و نام ابزارهای این درس در همین تاریخ با منابعشان بازبینی شده اند.
فایل چیست و پوشه چیست
فایل یک رشته پشت سر هم از بایت هاست که سیستم عامل به آن یک نام داده. همین. چه یک عکس باشد چه یک متن چه یک برنامه، روی دیسک همه شان یک چیزند: عددهایی پشت سر هم.
پوشه هم چیزی جز یک فایل خاص نیست: فایلی که به جای عکس یا متن، فهرست اسم فایل های دیگر را در خودش دارد. یعنی وقتی یک فایل را از پوشه ای به پوشه دیگر روی همان دیسک می برید، معمولا هیچ بایتی از خود فایل جابجا نمی شود؛ فقط اسمش از یک فهرست به فهرست دیگر منتقل می شود. به همین دلیل است که جابجایی در همان دیسک آنی است ولی کپی به یک دیسک دیگر زمان می برد.
مسیر آدرس کامل یک فایل است، یعنی زنجیره پوشه ها از ریشه تا خود فایل. در ویندوز با بک اسلش نوشته می شود و در مک و لینوکس با اسلش، و همین یک تفاوت کوچک منشا خیلی از خطاهایی است که موقع جابجایی فایل بین دو سیستم می بینید.
یک نتیجه مهم که از همین تعریف ساده بیرون می آید: نام فایل خودش داده است. اسم یک فایل ممکن است اسم مشتری، مبلغ قرارداد یا موضوع یک پرونده را لو بدهد، بدون اینکه کسی فایل را باز کند. بخش هوش مصنوعی همین درس دقیقا سر همین نکته برمی گردد.

پسوند فایل چیست و چه چیزی نیست
پسوند همان چند حرف بعد از آخرین نقطه در نام فایل است: .pdf، .jpg، .docx. کاری که می کند دقیقا یک کار است و نه بیشتر: سیستم عامل در فهرست خودش نگاه می کند ببیند کدام برنامه برای این پسوند ثبت شده و فایل را به همان می دهد.
حالا نکته ای که تقریبا همه اشتباه می فهمند: پسوند محتوای فایل را عوض نمی کند و توصیفش هم نمی کند. پسوند یک برچسب چسبیده روی جعبه است و هر کسی می تواند برچسب را عوض کند. محتوای جعبه سر جایش می ماند.
این را روی همین سرور امتحان کردیم. یک تصویر PNG هشت در هشت ساختیم و بدون هیچ تبدیلی کپی اش کردیم به نامی با پسوند .jpg. دستور file باز هم گفت PNG است، و تابع خواندن تصویر در PHP هم نوع را image/png برگرداند. دلیلش در خود فایل است: هشت بایت اولش 89 50 4E 47 0D 0A 1A 0A بود، همان چیزی که مشخصات رسمی PNG آن را «امضای PNG» می نامد و می گوید هر فایل PNG با همین هشت بایت شروع می شود.
پس دو چیز جدا وجود دارد: آنچه فایل ادعا می کند، که پسوند است، و آنچه فایل هست، که در بایت های اولش نوشته شده. برنامه های جدی به دومی نگاه می کنند. نتیجه عملی اش برای شما این است: وقتی یک عکس با پیام «فرمت پشتیبانی نمی شود» باز نمی شود، اسمش را عوض کردن تقریبا هیچ وقت درستش نمی کند، و اگر کرد یعنی از اول پسوندش غلط بوده.
چهار قدم بین دوبار کلیک تا باز شدن فایل
تا قدم سوم هیچ کس داخل فایل را ندیده. همین است که کل ماجرای پسوند از آن بیرون می آید.
-
۱
خواندن پسوند
فقط حروف بعد از آخرین نقطه، نه یک حرف بیشتر
-
۲
پیدا کردن برنامه
سیستم عامل در فهرست خودش می گردد کدام برنامه برای این پسوند ثبت شده
-
۳
تحویل فایل
بدون اینکه حتی یک بایت از محتوایش خوانده شده باشد
-
۴
خواندن محتوا
تازه اینجا معلوم می شود فایل واقعا چه بوده، و گاهی خیلی دیر است
روی مک و لینوکس این زنجیره کمی فرق دارد و گاهی خود محتوا هم دیده می شود، ولی قدم سوم آنجا هم قبل از قدم چهارم است.
چرا فایلی به نام photo.jpg.exe خطرناک است
حالا دو چیزی که تا اینجا گفتیم را کنار هم بگذارید: پسوند فقط برچسب است، و سیستم عامل برای انتخاب برنامه فقط به همان برچسب نگاه می کند. نتیجه اش قدیمی ترین و هنوز موثرترین حقه ای است که در ایمیل و پیام رسان ها می بینید.
فایلی به نام photo.jpg.exe برای سیستم عامل یک برنامه اجرایی است، چون پسوند واقعی اش exe است؛ jpg وسط اسم فقط بخشی از نام است و هیچ معنایی ندارد. حالا اگر نمایش پسوند در برنامه فایل ها خاموش باشد، همان فایل روی صفحه شما با نام photo.jpg ظاهر می شود. شما یک عکس می بینید و روی یک برنامه دوبار کلیک می کنید.
پس اولین کاری که ارزش دارد همین امروز انجام دهید این است: نمایش پسوند فایل ها را روشن کنید. مایکروسافت خودش مسیرش را نوشته و جمله اش با همین شروع می شود که اگر پسوند فایل ها را در File Explorer نمی بینید، در ویندوز ۱۱ از View و بعد Show گزینه File name extensions را بزنید، و در ویندوز ۱۰ در سربرگ View همان تیک را در گروه Show/hide بگذارید. یک بار انجام می شود و برای همیشه می ماند.
و یک نکته که از کد خودمان می آید: تمیز کردن نام فایل جلوی این حقه را نمی گیرد. تابع استاندارد وردپرس برای مرتب کردن نام فایل را روی همین ماشین امتحان کردیم و photo.jpg.exe را دست نخورده برگرداند؛ فقط فاصله ها را در نام های دیگر به خط تیره تبدیل کرد. چیزی که واقعا جلویش را می گیرد دو چیز دیگر است: فهرست پسوندهای مجاز، و خواندن خود بایت های فایل. لایه آپلود پلتفرم کاری ما هر دو را انجام می دهد و کامنت داخل همان فایل هم صریح نوشته که بررسی پسوند به تنهایی این را نمی بیند.
این موضوع دنباله دارد و جایش این درس نیست؛ در مسیر امنیت هم به انواع بدافزار می رسیم و هم به اینکه یک نرم افزار را از کجا باید گرفت.
اسم گذاری که شش ماه بعد هم کار می کند
مشکل نام گذاری این نیست که مرتب نیستید. مشکل این است که نام را برای خودتان در همان لحظه می نویسید، نه برای خودتان شش ماه بعد. آن آدم نمی داند «نهایی» یعنی چه و کدام «کپی» جدیدتر است.
سه قاعده کافی است و بقیه تزئین است.
تاریخ را همیشه به شکل سال بعد ماه بعد روز بنویسید، مثل 2026-09-06. دلیلش زیبایی نیست؛ دلیلش این است که در این شکل، مرتب کردن بر اساس حروف الفبا دقیقا همان مرتب کردن بر اساس زمان است. 6-9-26 این خاصیت را ندارد و در ضمن معلوم نیست ماه است یا روز.
نسخه را با عدد نشان دهید نه با صفت: v01، v02، v03. صفر ابتدایی مهم است، وگرنه نسخه ۱۰ قبل از نسخه ۲ مرتب می شود. کلمه «نهایی» یک صفت است و صفت جا برای صفت بعدی باز می کند؛ همین طور است که به «نهایی۲» می رسیم.
اسم چیزی که فایل به آن تعلق دارد را در ابتدای نام بگذارید، یعنی مشتری یا پروژه. اینطوری همه فایل های یک مشتری کنار هم مرتب می شوند حتی وقتی در یک پوشه ریخته اند.
یک صداقت لازم: هیچ قاعده ای در برابر یک تیم چهار نفره روی یک درایو مشترک دوام نمی آورد مگر اینکه نوشته شده باشد و یک نفر مسئولش باشد. اگر بعد از سه ماه فایل ها به هم ریخته اند، مشکل قاعده نبوده؛ مالک نداشته است.
نام فایلی که دوام می آورد و نامی که نمی آورد
معیار یکی است: آیا کسی که شش ماه بعد این نام را می بیند می تواند بدون باز کردن فایل تصمیم بگیرد.
شش ماه بعد هم خوانده می شود
- تاریخ به شکل 2026-09-06، چون ترتیب الفبا همان ترتیب زمان می شود
- نام مشتری یا پروژه در ابتدای نام فایل
- نسخه با عدد و صفر ابتدایی: v01 و v02 و v10
- به جای فاصله، خط تیره؛ نام کوتاه ولی خوانا
همان هفته بعد بی معنا می شود
- نهایی، نهایی۲، نهایی-واقعی
- تاریخ به شکل 6-9-26 که معلوم نیست کدام عدد ماه است
- سند مهم، جدید، کپی از سند مهم
- پنج سطح پوشه تو در تو برای پنهان کردن یک فایل
این قاعده ها فقط تا وقتی کار می کنند که یک نفر مسئولشان باشد. روی درایو مشترک، قاعده نانوشته همیشه می بازد.
پوشه بسازم یا به جستجو تکیه کنم
موضع ما: درخت پوشه های عمیق تقریبا همیشه شکست می خورد و دلیلش هم روشن است. هر سطح اضافه یک تصمیم اضافه است در لحظه ذخیره کردن، و آدم خسته آن تصمیم را نمی گیرد؛ فایل روی دسکتاپ می ماند.
چیزی که دوام می آورد ترکیب ساده تری است: دو یا نهایتا سه سطح پوشه، به علاوه نام های خوب. آن وقت جستجو کار می کند، چون جستجو روی نام فایل جواب می دهد و نام های شما معنادار است. جستجو جانشین نظم نیست؛ سود جستجو را کسی می برد که نام گذاری اش درست بوده.
یک قاعده عملی هم هست که کم گفته می شود: پوشه ای بسازید که کارش تمام شدن است. پروژه تمام شده باید از پوشه جاری به آرشیو برود، نه اینکه پاک شود و نه اینکه بماند. پوشه جاری که فقط بزرگ می شود، همان دسکتاپ است با یک اسم دیگر.
و آخرین چیز، که ربطی به مرتب بودن ندارد و مهم تر از همه است: هیچ کدام از این ها نسخه پشتیبان نیست. یک پوشه مرتب که فقط روی یک دیسک است، با خراب شدن همان دیسک به همان اندازه از بین می رود که یک پوشه به هم ریخته. آن بحث درس خودش را دارد و قدم بعدی منطقی همین درس است.
مسیر سریع با هوش مصنوعی
توصیه معمول این است که «از اول منظم باشید»، که برای پوشه ای با چهارصد فایل به هم ریخته هیچ فایده ای ندارد. راه سریع این است که فهرست واقعی نام فایل ها را بیرون بکشید و از یک مدل یک نقشه تغییر نام بخواهید، نه خود تغییر نام را. حرکتی که این را از یک ترفند به یک روش تبدیل می کند، ستون چهارم جدول است: هر نامی که مدل از رویش مطمئن نیست، در همان ستون علامت «دست نزن» می خورد و دست نخورده می ماند.
- فهرست نام ها را بگیرید، نه خود فایل ها. در ویندوز داخل همان پوشه دستور dir /b و در مک و لینوکس دستور ls -1 کافی است.
- قبل از چسباندن، فهرست را یک بار خودتان بخوانید و هر اسمی که نباید بیرون برود را از آن بردارید. نام فایل خودش داده است و این تنها قدمی است که کسی جای شما انجام نمی دهد.
- دستور زیر را بدهید. اینجا کار الگو گرفتن از متن است نه قضاوت، پس یک مدل سریع و ارزان کافی است؛ انتخاب امروزی را در بخش هوش مصنوعی همین سایت ببینید.
- پنج ردیف اول را با دست تغییر نام بدهید و نتیجه را نگاه کنید. تا وقتی پنج ردیف را با چشم خودتان ندیده اید، هیچ اسکریپتی را روی کل پوشه اجرا نکنید.
نسخه آماده کپی
این فهرست نام فایل های یک پوشه است. محتوای فایل ها را نداری و نباید حدس بزنی.
قاعده نام گذاری من: {مثلا تاریخ-مشتری-موضوع-نسخه}
فهرست نام ها:
{اینجا فهرست را بچسبانید}
یک جدول با چهار ستون بده:
نام فعلی | نام پیشنهادی | از کدام بخش نام فعلی به آن رسیدی | دست نزن
قاعده های سخت:
- هیچ تاریخی را که در خود نام نیست ننویس.
- تاریخ شمسی را به میلادی تبدیل نکن، همان طور که هست بگذار.
- اگر از روی نام مطمئن نیستی، ستون چهارم را «دست نزن» بگذار و ستون دوم را خالی.
- هیچ نامی را کامل نکن و هیچ کلمه ای اضافه نکن.
قبل از اعتماد به خروجی: دو قاعده سخت آخر آن دستور تزئین نیستند و از یک اجرای واقعی بیرون آمده اند. وقتی همین کار را روی یک فهرست نمونه پنج تایی انجام دادیم، دو نام هیچ تاریخی در خودشان نداشتند و قاعده «تاریخ-مشتری-موضوع» آدم را مجبور می کرد تاریخی از خودش بگذارد؛ و یک نام سال شمسی داشت که بدون دانستن ماه اصلا به تاریخ میلادی تبدیل نمی شود. ستون «دست نزن» بعد از همان اجرا اضافه شد. و یک حد که هیچ دستوری برنمی دارد: مدل فقط نام ها را دیده، نه محتوا را. فایلی به اسم گزارش، ممکن است گزارش پارسال باشد.
هوش مصنوعی در این کار
در این موضوع هوش مصنوعی یک کار را واقعا خوب انجام می دهد: از روی یک مشت نام به هم ریخته الگو بیرون می کشد و یک قاعده نام گذاری پیشنهاد می دهد، و همان کار برای یک آدم خسته کننده و برای مدل بی زحمت است. کاری که بلد نیست هم دقیقا موضوع همین درس است: نمی داند داخل فایل چیست، چون فقط نامی را دیده که شما چسبانده اید.
ابزارهایی که واقعا کمک می کنند
- Gemini برای تبدیل یک فهرست بلند نام به جدول تغییر نام مناسب است، چون با متن طولانی راحت کار می کند. ایران در فهرست کشورهای پشتیبانی شده خود گوگل نیست؛ جزئیاتش در صفحه همین ابزار در این سایت.
- Claude برای قاعده های سخت آن دستور بهتر جواب می دهد و راحت تر ستون «دست نزن» را پر می کند به جای اینکه چیزی از خودش بسازد. ایران در هیچ کدام از دو فهرست پشتیبانی شرکت نیست.
- ChatGPT برای پیشنهاد یک ساختار پوشه از روی توضیح کارتان خوب است، یعنی همان کاری که هیچ ورودی حساسی لازم ندارد. همان محدودیت دسترسی.
کجا نتیجه معکوس می دهد
خطر اینجا از جای غیرمنتظره ای می آید و همان چیزی است که در بخش اول گفتیم: نام فایل خودش داده است. فهرست نام های یک پوشه کاری معمولا نام مشتری، عنوان پروژه، گاهی مبلغ و حتی شماره تماس را با خودش بیرون می برد، و همه اینها بدون اینکه یک فایل باز شود در یک چت می نشیند. صفحه حریم خصوصی خود گوگل برای Gemini صریحا می گوید اطلاعاتی وارد نکنید که نمی خواهید یک بازبین انسانی ببیند یا گوگل برای بهبود سرویس هایش استفاده کند. پس فهرست را قبل از چسباندن یک بار خودتان بخوانید. خطر دوم ظریف تر است: مدل محتوای فایل ها را ندیده و هر جمله ای که درباره «این فایل چیست» بگوید، از روی نام حدس زده. این دقیقا همان اشتباهی است که کل این درس درباره آن است، فقط این بار مدل مرتکبش می شود.
منبع ها: Google: Gemini Apps Privacy Hub (last updated 10 August 2026) Anthropic: is my data used for model training
حد این توصیه
پسوند یک قرارداد دنیای دسکتاپ است. روی گوشی و داخل خود وب معمولا هیچ وقت آن را نمی بینید، و فایلی که از یک پیام رسان می آید ممکن است اسمش کلا عوض شده باشد. مهم تر از آن، خواندن بایت های واقعی فایل ثابت می کند فایل چه هست، نه اینکه امن است: یک فایل docx کاملا معتبر می تواند ماکروی مخرب داشته باشد و یک PDF واقعی می تواند اسکریپت داخلش باشد. و قاعده های نام گذاری فقط تا وقتی زنده اند که یک نفر مسئولشان باشد؛ روی درایو مشترک چهار نفره، بهترین قاعده هم بعد از یک فصل به هم می ریزد مگر اینکه نوشته شده و مالک داشته باشد.
از تجربه خود ما
ادعای «پسوند محتوا را تعیین نمی کند» را همان روز روی این سرور اجرا کردیم و پنج خط خروجی دارد. یک تصویر PNG هشت در هشت ساختیم، بدون هیچ تبدیلی آن را به holiday.jpg کپی کردیم، و بعد: دستور file نسخه ۵.۴۵ برای هر دو فایل گفت PNG image data, 8 x 8; تابع getimagesize در PHP برای همان فایل با پسوند jpg مقدار image/png برگرداند; و هشت بایت اول فایل با xxd دیده شد و دقیقا 8950 4e47 0d0a 1a0a بود، یعنی همان امضایی که مشخصات رسمی PNG می گوید هر PNG با آن شروع می شود. نیمه دوم را هم امتحان کردیم، چون همه فکر می کنند تمیز کردن نام کافی است: تابع sanitize_file_name وردپرس روی همین ماشین نام «فاکتور نهایی مشتری.pdf» را به «فاکتور-نهایی-مشتری.pdf» تبدیل کرد ولی photo.jpg.exe را عینا و دست نخورده پس داد. چیزی که در پلتفرم های خودمان جلوی این را می گیرد در rgb-freelance/includes/uploads.php نوشته شده: اول فهرست پسوندهای مجاز، بعد wp_check_filetype_and_ext روی فایل موقت، و برای تصویرها getimagesize. کامنت بالای همان تابع، که خودمان موقع نوشتنش گذاشتیم، می گوید بررسی پسوند به تنهایی این را نمی بیند. جالب تر اینکه همان لایه گاهی خودش پسوند را عوض می کند: اگر PNG به شکل JPEG کوچک تر شود، فایل با پسوند jpg ذخیره و مسیر جدید برگردانده می شود. یعنی در کد ما هم پسوند از محتوا پیروی می کند، نه برعکس.
سوال هایی که واقعا پرسیده می شوند
چطور پسوند فایل ها را در ویندوز نشان بدهم؟
در ویندوز ۱۱ در File Explorer از منوی View به Show بروید و File name extensions را بزنید. در ویندوز ۱۰ در سربرگ View و در گروه Show/hide همان تیک را بگذارید. یک بار انجام می دهید و برای همیشه می ماند، و بعد از آن یک فایل با پسوند دوگانه در همان نگاه اول لو می رود.
اگر پسوند یک فایل را عوض کنم چه اتفاقی می افتد؟
محتوای فایل هیچ تغییری نمی کند؛ فقط سیستم عامل از آن به بعد آن را به برنامه دیگری می دهد. نتیجه معمولا این است که برنامه فایل را باز نمی کند یا خطای فرمت می دهد. تغییر پسوند یک فایل را تبدیل نمی کند؛ برای تبدیل باید برنامه ای محتوا را بخواند و دوباره بنویسد.
اسم فایل را فارسی بگذارم مشکلی پیش می آید؟
روی کامپیوتر خودتان معمولا هیچ مشکلی نیست، و روی همین سایت هم نام فارسی می ماند و فقط فاصله ها به خط تیره تبدیل می شوند. مشکل وقتی شروع می شود که فایل سفر کند: یک فایل فشرده که در یک سیستم ساخته و در سیستم دیگری باز شود گاهی نام های خراب نشان می دهد، و نام فارسی در یک آدرس اینترنتی به یک رشته طولانی رمزگذاری شده تبدیل می شود. برای فایل هایی که قرار است روی وب بروند، نام لاتین امن تر است.