Derinlik / kuru erik için Solaris eşdeğeri?


10

Bir dizinin içindeki bazı dosyaları bulmaya çalışıyorum. Varsayılan olarak, find commandbelirttiğim dizinde ve alt dizinlerinde arama yapar.

Ben kullanmaya çalıştı depth/maxdepthve prune, ama hiçbir şey bu üstesinden gelmek için yardımcı oldu. Birisi Solaris'te derinlik / kuru erik kullanmak için doğru yolu işaret edebilir mi?

Kodum şöyle görünüyor:

find file_path -depth 1 -name '*.log'

Aşağıdaki hatayı alıyorum:

find: bad option 1
find: [-H | -L] path-list predicate-list

Yanıtlar:


15

Belirgin derecede benzer isimlere sahip iki alakasız seçeneği karıştırıyorsunuz:

  • -depthherhangi bir argüman almaz. Varsa find, dizinin kendisini işlemeden önce bir dizinin içeriğini işlemeyi söyler .
  • -maxdepth N (burada N bir tamsayıdır) özyinelemeyi alt dizinlerin N düzeyleriyle sınırlar.

Bu -maxdepthseçenek, findSolaris'in bazı sürümlerinde bulunan , ancak Solaris'in değil. findBir dizini yinelenmeden işlemek için yalnızca standart seçenekleri kullanmanın bir hilesi vardır : -prunealt dizinlerde kullanın , ancak üst düzey dizini hariç tutun . En üst düzey dizini eşleştirmenin tek yolu ada göre olduğundan, adın .(hiçbir zaman alt dizinin adı olmayacak) olmasını sağlayın.

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print

Bu sorunla karşı karşıyaydım ve bu çözüm yardımcı oldu. Bunu işe almak için bir çözüm bulmaya çalışırken bir gün geçirdim. Grrr, Solaris.
— Kevin Teljeur

/./ find $ {directory} / sh / öğesini kaldırmak için sed kullanıldığında herhangi bir sorun görüyor musunuz? -adı. -o -tip d -pur -o-baskı | sed 's /\/\.\//\//'
— Ethan Post

@EthanPost Bunu yapabilirsiniz, ancak yok olan -mindepthve -maxdeptholmayan bir tür olan uygulamaları bulabilirsiniz . -maxdepthfind /directory/to/traverse -mindepth 1 -maxdepth 1 -name '*.log'
— Buluntunuz

@Gilles Sadece böyle bir durumda çalışmanız gerekebilecek bir çerçeve oluştururken sizi kırmak için bir tane alır! Bu pazar bir gün ekmek ve tereyağım olabilir! Yardım için teşekkürler.
— Ethan Post
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.