می‌دانیم با دستور "chmod" در لینوکس می‌توان دسترسی فایل‌ها و دایرکتوری‌ها را تغییر داد؛ اما اگر شما نیاز داشته باشید برای فایل‌ها یک دسترسی و برای دایرکتوری‌ها دسترسی دیگری قرار دهید، راه حل چیست؟ راه حل استفاده از دستور "find" می‌باشد؛ پیشتر در مقاله « یافتن حجیم ترین فایلها و پوشه ها در لینوکس » از این دستور برای پیدا کردن حجیم‌ترین فایل‌های یک دایرکتوری استفاده کرده‌ایم. امروز می‌خواهیم کاربرد دیگری از این دستور را مورد بررسی قرار دهیم.

 

ما قصد داریم برای فایل‌ها دسترسی "644" و برای دایرکتوری‌ها دسترسی "755" تنظیم کنیم. (این دسترسی‌ها به صورت متداول در وب‌سرور‌ها مورد استفاده هستند)

برای تغییر دسترسی‌ فایل‌ها، از دستور زیر استفاده میکنیم:

find /home/hossein/path/to/my/directory -type f -exec chmod 644 {} \;

توضیحات:

در دستور بالا، ابتدا به دستور "find" دایرکتوری مورد نظرمان برای جستجو را معرفی و با سوییچ "-type" نوع فایل مورد نظرمان را مشخص میکنیم؛ "f" مشخص می‌کند دستور "find" «فایل‌ها»  را پیدا کند (به جای دایرکتوری نوشته شده در دستور، دایرکتوری مورد نظر خود را جایگزین کنید). سوییچ "-exec" مشخص میکند به ازای هر نتیجه یافت شده، دستور بعدی را اجرا کند. (دستور بالا یه صورت بازگشتی اجرا شده و تمامی فایل‌ها موجود در دایرکتوری‌های زیر مجموعه را نیز بررسی خواهد کرد)

 

برای تغییر دسترسی دایرکتوری‌ها، از دستور زیر استفاده میکنیم:

find /home/hossein/path/to/my/directory -type d -exec chmod 755 {} \;

دستور بالا، مشابه دستور قبلی می‌باشد با این تفاوت که به جای برای نوع جستجو از "d" استفاده شده است و نمایانگر این است که "find" به دنبال دایرکتوری‌ها بگردد؛ همچنین به جای "chmod 644" از "chmod 755" استفاده شده است که دسترسی متداول برای دایرکتوری‌ها در وب سرور می‌باشد.

 

منبع عکس: این