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.