دستور find
از این دستور می توان برای سرچی دقیق تر استفاده کرد . به این صورت که واقعا تک تک دایرکتوری ها را به صورت آنلاین جست و جو می کند
جستجوی یکی یکی فایل ها برای پیدا شدن فایل مورد نظر (برخلاف locate)
جستجوی مکان فعلی و زیر مسیر ها برای فایل هایی که با f شروع شود
find . -name “f*”
جستجو کرده و رکوردهای جستجو شده را پاک کند
find آرگومانهای ورودی -delete
جستجوی فایل و دایرکتوری در داخل پارتیشن لینوکس ( root )
find / -name file1
جستجوی فایل و دایرکتوری متعلق به user1
find / -user user1
جستجوی فایل های با پسوند bin در داخل دایرکتوری home/user1
find /home/user1 -name \*.bin
جستجوی فایل های باینری که در ۱۰۰ روز گذشته استفاده نشده اند
find /usr/bin -type f -atime +100
جستجوی فایل های ایجاد شده با تغییر کرده در طول ۱۰ روز گذشته
find /usr/bin -type f -mtime -10
جستجوی فایل های با پسوند rpm و تغییر مجوز آنها !
find / -name *.rpm -exec chmod 755 '{}' \;
جستجوی فایل های با پسوند mp3 و حذف آنها !
# find . -type f -name "*.mp3" -exec rm -f {} \;
جستجوی فایل های با پسوند rpm بدون جستجو در پارتیشن های جداشدنی مانند سی دی رام , حافظه فلش و ...
find / -xdev -name \*.rpm
پیدا کردن تمامی فایل های با پسوند log و ساختن یک فایل فشرده با فرمت bzip از آنها find
/var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2
پیدا کردن همه ی فایل های با پسوند txt و کپی آنها از یک دایرکتوری به دایرکتوری دیگر
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents
نمایش تمام فایلهایی که پیدا شده(\ یعنی اتمام دستور)({} یعنی در اینجا پیدا شده ها را قرار بده)
جستجوی مسیرها و فایل ها -exec ls -ltrh “{}” \
پاک کردن تمام فایلهایی که پیدا شده(\ یعنی اتمام دستور)({} یعنی در اینجا پیدا شده ها را قرار
بده)
جستجوی مسیرها و فایل ها -exec rm “{}” \
نمایش همه ی فایل ها داخل پارتیشن لینوکس ( / ) که دارای مجوز مورد نظر هستند
find / -perm -u+s
از سویچ iname- برای مشخص کردن اسم فایل استفاده می کنیم
find ~/Desktop -iname "*pazhoheshi*"
از سویچ inum- برای سرچ عدد Inode ای خاص در تمامی فایل ها و دایرکتوری ها استفاده می کنیم
find ~ -inum 1723181
از سویچ perm- برای پیدا کردن تمامی فایل ها و دایرکتوری ها با پرمیشنی مشخص استفاده می کنیم
find /usr -perm 4755
توجه داشته باشید که علامت – قبل از عدد 4000 به مفهوم پیدا کردن تمامی فایل ها و دایرکتوری
هایی است که پرمیشنی بیش تر از 4000 دارد
find /usr -perm -4000
ابتدا با استفاده از سویچ -iname به دنبال تمامی فایل هایی با پسوند c می گردیم سپس به Group همه ی آن ها پرمیشن نوشتن یا همان write را اضافه می کنیم .
find ~/src -iname "*.c" -exec chmod g+w {} \;
ابتدا با استفاده از سویچ iname- تمامی فایل ها با پسوند conf در مسیر etc/ را پیدا کرده سپس تمام آن ها را در مسیر config/~ کپی می کنیم .
find /etc -iname "*.conf" -exec cp {} ~/config \;
جستجوی فایلهایی که خالی اند
# find /tmp -type f -empty
سوییچهای دستور find:
iname “ “
غیر حساس به حروف کوچک و بزرگ
iname “???”
غیر حساس بخه حروف کوچک و بزرگ و جستجوی فایل های سه حرفی
type d
جستجو براساس دایرکتوری(تمام دایرکتوری ها را می گردد)
type f
جستجوی فایل
type l
جستجوی لینک
size 100b
جستجوی فایل با حجم دقیقاً 100 بایت
size +100b
جستجوی فایل با حجم بزرگتر از 100 بایت
Size +1G
جستجوی فایلی با حجم بزرگتر از یک گیگا بایت
size 0
فایل با حجم صفر
(-atime)
جستجو بر اساس آخرین زمان دسترسی access Time
(-ctime)
جستجو بر اساس دسترسی از نوع change attribute نظیر owner، copy، touch و ...
(-mtime)
آخرین دسترسی براساس تغییر در محتوا (modify)
-atime +6
تغییرات در access time آن قدیمی تر از 6 روز باشد، بیشتر از شش روز اخیر
-atime -6
تغییرات در access time آن جدیدتر از 6 روز باشد، زمان کمتری از شش روز اخیر گذشته باشد(منفی بیانگر از زمان x تا حالا است)
-atime +1
تغییرات در access time آن قدیمی تر از 1 روز باشد، فایل هایی که دیروز تا امروز روی آن کار شده(امروز دست به فایل ها نخورده باشد)
-atime +4
تغییرات در access time آن قدیمی تر از 4 روز باشد، بیشتر از چهار روز اخیر، مثلاً هفت روز قبل
-atime -1
فایل هایی که امروز دست زده ایم، تا به لحظه حالا(جدیدتر از یک روز)
-amin -40
فایل هایی با تغییر در access در 40 دقیقه قبل تا حالا
-cmin -40
فایل هایی با تغییر در change در 40 دقیقه قبل تا حالا
-mmin -40
فایل هایی با تغییر در modify در 40 دقیقه قبل تا حالا
- ۹۶/۰۹/۰۳