Usar el comando FIND no recursivo

Resuelto
Hola, ¿alguien sabe cómo usar el comando find sin descender en la jerarquía de directorios?

7 respuestas

  1. Moderador
    Usas la opción -maxdepth
     find . -name '*.c' -maxdepth 1 -type f 

    --> todos los archivos del directorio actual.

    Johan
    Gates te dio las ventanas.
    GNU nos dio toda la casa.(Alexandrino)
    15
    1. Saco el tema de su tumba por si alguien lo encuentra durante una búsqueda.
      En realidad, hay una solución con prune:

      find . \( -type d ! -name . -prune \) -o -type f -print

      1) Indicamos que los directorios que no se llaman "." no se recorren
      2) Solicitamos la impresión de los archivos
      7
      1. Que Dieu vous bénisse ;-)
        0
      2. gracias
        0
      3. y si no, en AIX basta con usar el comando ls sin filtros (la limitación de ls no aparece solo con filtros).
        por lo tanto ls -1|grep TOTO para filtrar todos los archivos del directorio actual que contengan "TOTO"
        o ls -1|awk '/^TOTO.*$/' para filtrar todos los archivos del directorio actual que empiezan por TOTO ( etc...)
        => no hay recursividad
        para eliminar (ejemplo con todos los archivos que empiezan por TOTO:

        ls -1|awk '/^TOTO.*$/{system("rm -f " $0)}'
        0
      4. Otro ejemplo (que funcionó en HPUX)

        Para eliminar todos los archivos más antiguos de 3 días que están en este directorio....
        find . \( -type d ! -name . -prune \) -o -type f -mtime +3 -exec echo rm {} \; > cleanup.sh

        luego basta con ejecutar cleanup.sh después de la verificación.
        0
      5. Gracias por sacar a relucir esta solución. Me ha servido (2011).
        0
    2. haz un man find para más información sobre el comando find de Linux.

      find carpeta_donde_buscas -name nombre_del_archivo_a_buscar

      Bahan

      Cerrar el mundo.||.txen eht nepo
      0
      1. Oye biloute.
        Ya que hay 15000 líneas de manual -> estás fuera de service (HS)
        0
    3. hola

      Tengo la misma pregunta pero para AIX/Solaris/etc, es decir, ¡no Linux!
      -[min/max]depth no existe.

      Personalmente creo que es imposible, pero ¿alguien tiene tal vez otra opinión?
      0
      1. oh, con barras verticales y ls deberíamos poder lograrlo, ¿no?
        0
        1. no, no, se puede o no se puede pero hay que saber que eso solo funciona bajo Linux, punto y final.
          A priori deberíamos cerrar este tema y dejarlo resuelto.
          0
          1. Para AIX/Solaris/etc puedes usar -prune
            (Acabo de ver que la respuesta ya había sido dada..)
            0