GNU/Linux >> Znalost Linux >  >> Linux

Ekvivalentní maximální hloubka pro hledání v Aix?

Snažím se získat všechny soubory maskou v nějakém adresáři bez rekurzivního vyhledávání v podadresářích. Neexistuje žádná možnost -maxdepth 0 v AIX za to.

Slyšel jsem o -prune , ale stále nemohu pochopit, jak to funguje.

Předpokládám, že příkaz by měl vypadat nějak takto

find dir \( ! -name dir -prune -type f \) -a -name filemask

ale nefunguje to.

Mohl byste mi prosím napsat správný příkaz a vysvětlit, jak to bude fungovat?

UPD

Zdá se, že příkaz

find dir ! -path dir -prune

vytiskne všechny soubory a katalogy v dir , ale ne soubory a katalogy v dir/* , takže jej mohu použít pro svůj případ.

Přijatá odpověď:

Chtěli byste:

find dir/. ! -name . -prune -type f -name filemask

Nebo:

find dir ! -path dir -prune -type f -name filemask

Chcete-li najít běžné soubory zvané filemask v dir bez hledání v podadresářích dir .

Pomocí find dir ! -name dir -prune , měli byste problémy, pokud by existoval dir/dir adresář.

dir/. přístup to řeší, protože find nenarazí na žádný jiný soubor s názvem . než tento dir/. soubor předán jako argument.

-path přístup to řeší tak, že se podívá na cestu k souborům (na rozdíl od samotného názvu), -path dir bude odpovídat v dir , ale ne na dir/dir (takže dir bude jediný adresář, který nebude ořezán). -path nemusí být k dispozici ve starších verzích AIX.

Obecněji řečeno, pro standardní ekvivalent GNU -maxdepth n , viz Omezit hledání POSIX na určitou hloubku?


Linux
  1. Jak zkontrolovat velké soubory v konzole

  2. Linux:Jak najít ovladač zařízení používaný pro zařízení?

  3. Najít nejlepší písmo pro vykreslení kódového bodu?

  1. Jak hledat soubory podle velikosti a přípony?

  2. Irfanview nejbližší ekvivalent pro linux

  3. Ekvivalent unixového příkazu find ve Windows

  1. Proč Find nepřijímá ‚-exec Cp {} Dir +‘?

  2. Jaký je moderní ekvivalent pro kouření?

  3. Ekvivalent SysInternals FileMon pro Linux?