پرش به محتویات

درسنامه ۲-۹: وایلدکاردها (Wildcards) در شل

وایلدکاردها برای انتخاب گروهی از فایل‌ها مفیدند.

الگوهای متداول

  • * هر رشته‌ای (حتی خالی)
  • ? دقیقاً یک کاراکتر
  • [abc] یکی از حروف داخل براکت
  • [0-9] یک رقم در بازه
  • آکلاد {} (Brace expansion) برای تولید الگوها

مثال‌ها

ls *.txt                 # همهٔ txt
rm -i *.tmp              # حذف تعاملی فایل‌های موقت
mv photo_??.jpg pics/    # فایل‌هایی با دو رقم
touch report_{v1,v2}.md  # تولید دو فایل v1 و v2
mkdir -p logs/{app,db}/2024/{10,11}

نکته: قبل از دستورات مخرب مثل rm همیشه ابتدا الگو را با ls بررسی کنید.

تمرین کوتاه

  • چند فایل نمونه بسازید و با الگوها آن‌ها را جابه‌جا یا حذف کنید.

نکات و مثال‌های بیشتر

  • الگوهای ترکیبی و نفی:
ls *.log *.txt
ls *.[ch]          # همهٔ .c و .h
ls !(tmp|bak)      # نیازمند extglob: shopt -s extglob
  • گسترش آکلاد برای بازه‌ها:
touch file_{01..05}.txt
  • تست امن قبل از rm:
ls pattern*        # بررسی نتیجهٔ الگو
rm -i pattern*     # حذف تعاملی

خطاهای رایج

  • فراموش‌کردن فعال‌سازی extglob برای الگوهای پیشرفتهٔ !().
  • فرض‌گرفتن اینکه الگوها در نقل‌قول هم گسترش می‌یابند؛ داخل نقل‌قول معمولاً گسترش انجام نمی‌شود.