Linux verilen dizeye sahip dosya adlarını bulur


107

Ubuntu'dayım ve geçerli dizinde ve adı "John" dizesini içeren alt dizinlerde bulunan tüm dosyaları bulmak istiyorum. Bunun grepdosyalardaki içerikle eşleşebileceğini biliyorum , ancak bunu dosya adlarıyla nasıl kullanacağım konusunda hiçbir fikrim yok. Herhangi bir yardım memnuniyetle karşılanacaktır.


Yanıtlar:


195

Bul komutunu kullanın ,

find . -type f -name "*John*"

1
#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; fi F search-string
İle

@IliaRostovtsev - güzel, ama [ -z "$1" ]biraz daha iyi olurdu.
Joe

@Joe Ah, doğru. Bir yolda boşluklar olması durumunda mı? Ama burada sadece 1 $ 'lık alanın varlığını kontrol edersek 2 $' ın görünmesini sağlar ve bu kadar. Yani teorik olarak daha iyi, değil mi?
Ilia Rostovtsev

@IliaRostovtsev - Aslında yanılmışım. $ 1 boşsa, test olur if [ -z ]. Bunun bir sözdizimi hatası olacağını düşündüm ama işe yarıyor. Bundan sonra kodumun bir kısmını basitleştirebilirim.
Joe

25

Doğru bir cevap zaten verilmişti, ancak kendinize nasıl yardım edeceğinizi öğrenmeniz için farklı bir şekilde yararlı bir şeyler sunacağımı düşündüm; Neyi başarmaya çalıştığınızı tek kelimeyle özetleyebilirseniz, Linux'ta çok iyi bir yardım özelliği var.

man -k <your search term>

Bunun yaptığı şey, arama teriminize sahip tüm komutları kısa açıklamada listelemektir. Genellikle peşinde olduğun şeyi bulma şansın oldukça yüksektir . ;)

Bu çıktı bazen biraz zor olabilir ve bunu mevcut tüm kılavuz sayfalardan ziyade çalıştırılabilir dosyalara indirgemenizi öneririm, örneğin:

man -k find | egrep '\(1\)'

veya daha yüksek ayrıcalık seviyeleri gerektiren komutları da aramak istiyorsanız, örneğin:

man -k find | egrep '\([18]\)'

3
Merak ediyorum ... eldeki sorunu bir arama yoluyla çözme girişiminde bulunulmadığını gösteren bir soru bir oylama alıyor, olası komutların nasıl bulunacağına dair dostça bir açıklama yapılıyor. Kriterler nelerdir? :)
tink

1
sana oy verdim ders çok az adam yapabilir. ama örnekleri görebilir ve uyarlayabiliriz :)
tgkprog



1

Bu, treearamak istediğiniz dizindeki komutu kullanan çok basit bir çözümdür . -ftam dosya yolunu gösterir ve adında dizeyi içeren dosyayı bulmak için |ağacın çıktısını yönlendirmek için kullanılır .grepfilename

tree -f | grep filename
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.