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. Para AIX/Solaris/etc puedes usar -prune
      (Acabo de ver que la respuesta ya había sido dada..)
      0
      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. 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. oh, con barras verticales y ls deberíamos poder lograrlo, ¿no?
          0
          1. 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. 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