İşte kullandığımız zaman yararlanabileceğimiz bazı örnekler bulmak, dosyaları veya klasörleri aramak için bir komut.
Çalıştır komutuyla ilgili yardım almak için:
man find
kılavuzdan çıkmak için sadece tuşuna basın [Q] (herhangi bir kılavuz için geçerlidir).
Aşağıdaki örneklerde nokta (.) Bulduktan sonra (bul.) Bilgi istemi tarafından belirtilen klasöre baktığımız anlamına gelir. / Home / gibi herhangi bir geçerli yolla değiştirilebilir.
Örnekler:
Desenli dosyaları aramanız yeterlidir.
find . -type f -name "*.deb"
bul ve / home / pepe / dizinine kopyala
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Thumbs.db dosyalarını bulun ve silin.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Dizindeki md5 dosyalarıyla saf bir metin dosyası oluşturun.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Can sıkıcı .svn klasörlerini silin.
find | grep "\.svn$" | xargs rm -fr
Bir metni diğeriyle değiştirin.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Bir gün öncesine kadar güncellenen dosyaları bulun.
find /var/log/[a-z]* \*.sql -mtime +1
DEB paketlerinin md5sums dosyalarını oluşturmak için:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
.txt dışındaki tüm dosyaları silin (tabii ki .txt herhangi bir şey olabilir)
bul. ! -name "* .txt" -exec rm {} \;
büyük / küçük harfe duyarlı eşleşmeler olmadan ara:
bul. -iname «* foobar *»
Açıklama: -exec komutu -iname parametresiyle çalıştırılamaz.
Mükemmel 😉 bu komut, aramaları yapabilmek için 'adam'da var olan seçeneklerden korkmadan önce bilmem zorunlu olmalı, ancak ona fırsat vererek unuttuğum şeyi bulma konusunda ne kadar güçlü olduğunu görebildim sabit sürücümde 😐
Bul, özellikle boşluklar ve diğer alışılmadık karakterler içeren dosya adlarıyla uğraşırken kesinlikle yararlıdır. Örneğin, bir defasında bir dizi dizini sıkıştırmayı başaramayacağımı hatırlıyorum, ta ki xargs ile bul'u kullanmam (bu arada -exec'den çok daha hızlı) ve problem çözülene kadar.
Find komutu için tercih ettiğim kullanımlardan bir diğeri de izinleri yinelemeli olarak değiştirmektir:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
İlginç ^ _ ^
Çakra simgesi ne kadar havalı görünüyor hahahahahaha 😀
Mageia eksik 🙂
Evet doğru 😀
Şu anda bu hehehehe'ye dayanıyorum. Teşekkürler 🙂
Ve dağıtımım için bir tane ...
Teşekkürler, komutlar çok kullanışlı, Ubuntu'da bir zamanlar locate komutunu kullandığımı hatırladığımdan şüphem var, find veya ...
Olumsuz. yerleştirmek, mlokate y yer benzemeyen diğer arama komutlarıdır bulmak, komutla periyodik olarak güncellenmesi gereken bir veritabanı kullanıyorlar güncellenmişb.
Her iki tür komutun da kullanımları vardır. Örneğin genellikle kullanırım güncellenmişb takip eden mlokateçok sık güncellenmediğini bildiğim çok fazla veriye sahip bir dizinde gerçekten hızlı bir şey bulmak istediğimde (örneğin, bir depodaki bir paket) bulun ve bulmak arama sonuçlarını başka bir komutla birleştirmek gibi daha karmaşık bir şey yapmak istediğimde veya sadece veritabanını oluşturmak istemediğimde, çünkü arayacağım dizinin çok fazla bilgi içermediğini biliyorum.
Çok teşekkür ederim Hugo, mükemmel açıklama, terminalin ne kadar güçlü olduğunu sadece gnu / linux'ta söyleyebilirim!
Merhaba, bunun eski bir konu olduğunu görüyorum, ama umarım hala bana yardım edebilirsin.
Bir belgeyi gördüğümden beri regexp kullanmayı öğreniyorum ve error veya fail kelimelerini ve bunların türev hatalarını veya başarısız veya başarısızlıklarını vb. Arıyorum ve normal ifadem:
: / \ (. * \ (hata | başarısız \). * \) /
Yürütürken, bana hiçbir eşleşme olmadığını söylüyor 🙁
:/\(.*\(hata\).*\)/
o
: / \ (. * \ (başarısız \). * \) /
Kibrit bulursan, bana ne kadar yanıldığımı söyleyebilir misin?
Sizin koyduğunuz satırın tamamı nedir?
Çözümü bulup bulmadığımı test etmek ve görmek için.
Öte yandan, yine de isterseniz buradan kontrol edebilirsiniz: https://blog.desdelinux.net/?s=expresiones+regulares
Lütfen bana yardım edin, * _ZFIR0069.TXT ile biten dosyaları başka bir yola kopyalamak ve sonuna bir tarih eklemek istiyorum, bir komut yapıyorum:
tarih = $ (tarih + »% Y% m% d%»)
bul / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ tarih \;
Ancak sonuç şudur:
{} _20160225% -> ancak tümünün yalnızca bir dosyasını kopyalar ve bu şekilde yeniden adlandırılır
İstediğim, tüm dosyaları kopyalaması ve bu biçime sahip olması * _ZFIR0069_ $ date .TXT
Selamlar.
Find * -type d ve find / home / pepe -type d arasındaki fark nedir? Hesabımın dizinlerini listelemek istiyorum ve neden ilkinin bunu doğru yaptığını ve ikincisinin neden yapmadığını anlamıyorum. yardım etmek
Sayılarla biten dosyaları nasıl bulabilirim?