لیست نام فولدر و زیرفولدرها با بش

مدتی قبل احتیاج پیدا کردم تا در محیط لینوکس، از یک فولدر و زیرفولدرهای اون یک لیست متنی (Text) داشته باشم. برای همین با سعی و خطا یک کد بش (Bash) نوشتم که از یک فولدر تا عمق ۳ زیرفولدر را در یک فایل متنی ذخیره می‌کند. به شکل ساده نمودار درختی فولدرها به این شکله:

Main_folder
├── Folder01
├── _Folder02
|   └── Subfolder01
├── _Folder03
|   ├── Subfolder01
|   └── Subfolder02
└── Folder04

برای این کار باید یک فایل متنی ایجاد کنید و نام اون رو به (مثلا) list_maker.sh تغییر بدید و متن زیر را داخل اون بنویسید و ذخیره کنید.

#!/bin/bash
l=list.txt # نام فایل متنی خروجی
find -maxdepth 3 -type d > $l # نام فولدرها را در فایل متنی لیست می‌کند
sed -i -e 's|.*/*/||' $l # موارد اضافه در اول اسم فولدرها را حذف می‌کند
sed -i '/\r/! s/$/\r/' $l # فایل متنی را از یونیکس به ویندوز تغییر می‌دهد

فایل بش ایجاد شده را داخل فولدر اصلی مورد نظر قرار بدید و اجرا کنید.

روش اجرا در لینوکس

۱. روی فایل بش راست کلیک کنید
۲. گزینه Properties رو انتخاب کنید
۳. در پنجره باز شده در تب Permissions تیک Allow executing file as a program را فعال کنید
۴. ترمینال را باز کنید و فایل بش را داخل آن بکشید و رها کنید
۵. دکمه اینتر صفحه کلید (Enter) را فشار دهید
۶. فایل متنی شامل لیست فولدر و زیرفولدرها (list.txt) در فولدر اصلی ساخته می‌شود

روش اجرا در ویندوز ۷

در ویندوز ۷ نمی‌تونید بش رو مستقیما اجرا کنید. یک ترفند برای اجرای فایل‌های بش پیدا کردم، باید از نرم‌افزار گیت (Git) استفاده کنید. گیت کارش این نیست ولی می‌تونه فایل‌های بش رو هم اجرا کنه.

۱. به سایت گیت برید و نرم‌افزار رو دانلود و نصب کنید
۲. داخل فولدر در جای خالی راست کلیک کنید و از منوی کشویی گزینه Git Bash Here را انتخاب کنید
۳. در پنجره خط فرمان باید ابتدا بنویسید bash و بعد نام فایل بش را بنویسید. به این صورت bash list_maker.sh
۴. دکمه اینتر صفحه کلید (Enter) را فشار دهید
۵. فایل متنی شامل لیست فولدر و زیرفولدرها (list.txt) در فولدر اصلی ساخته می‌شود

در ادامه می‌تونید این لیست را با نرم‌افزار اکسل باز کنید و لیست فولدرها را به شکل جدول ملاحظه کنید.