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.