Koşullu özyinelemeli ls


17

Neden bir dizindeki ve alt dizinlerdeki tüm pdf dosyalarını bulmak için böyle bir komut kullanamıyorum? Nasıl yaparım? (Ubuntu'da bash kullanıyorum)

ls -R *.pdf

DÜZENLE

Tüm bu dosyaları nasıl silebilirim?

Yanıtlar:


22

Neden bir dizindeki ve alt dizinlerdeki tüm pdf dosyalarını bulmak için böyle bir komut kullanamıyorum?

*.pdfKomutunuzdaki joker karakter bash, yürütülmeden önce geçerli dizindeki tüm eşleşen dosyalara genişletilir ls.


Nasıl yaparım? (Ubuntu'da bash kullanıyorum)

cevabını bul.

find . -name \*.pdf

pdf dosyalarının özyinelemeli listesidir. -inamebüyük / küçük harfe duyarlı değil,

find . -iname \*.pdf

örneğin .pdf dosyalarını listeler. foo.PDF

Ayrıca, sınırlı sayıda alt klasör için ls kullanabilirsiniz, örneğin

ls *.pdf */*.pdf

tüm pdf dosyalarını alt klasörlerde bulmak için (bar / foo.pdf ile eşleşir, bar / foo / asdf.pdf ile eşleşmez ve foo.PDF ile eşleşmez).

Bul ile bulunan dosyaları kaldırmak istiyorsanız şunu kullanabilirsiniz:

find . -iname \*.pdf -delete

1
Tıpkı benzer bir çıktı istediğiniz durumda ls -lvb dosya boyutu, mülkiyet, tarih, gösteren, komuta kullanabileceğiniz findile -lsörneğin seçeneği,find . -name \*.pdf -ls
RFVoltolini

2

Diğerlerinin söylediği gibi, cevap budur.

Şimdi diğer tarafa cevap verelim.

  • Tüm bu dosyaları nasıl silebilirim?

    bulmak. -iname * .pdf -exec rm {} \;

Yapmalı.


2
Globunuzu erken genişletilmesini önlemek için alıntı yapmanız gerekir.
sonraki duyuruya kadar duraklatıldı.

1

Ls yerine find komutunu kullanın

find . -name '*.pdf'
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.