Porqué en ubuntu para buscar tengo que poner comillas, pero en el ejemplo del profesor no tuvo que ponerlas para el parámetro del -name: ...

Alejandro Picado Brenes

Alejandro Picado Brenes

Pregunta
studenthace 5 años

Porqué en ubuntu para buscar tengo que poner comillas, pero en el ejemplo del profesor no tuvo que ponerlas para el parámetro del -name:

Ejemplo sin comillas para buscar json con error:

➜ platzi_ejemplo find . -name *.json | wc -l find: paths must precede expression: `package.json' find: possible unquoted pattern after predicate `-name'? 0

Ejemplo con comillas para buscar json, si me funcionó

➜ platzi_ejemplo find . -name "*.json" | wc -l 483
4 respuestas
para escribir tu comentario
    Cristian Camilo Hernández Ramirez

    Cristian Camilo Hernández Ramirez

    studenthace 4 años

    No sabía que necesitaba comillas, muchísimas gracias.

    Freizer Herrera

    Freizer Herrera

    studenthace 5 años

    Tuve el mismo problema y me sirvió en Manjaro/Arch. Gracias mafrend!

    Alejandro Picado Brenes

    Alejandro Picado Brenes

    studenthace 5 años

    @Dantoac muchas gracias por la aclaración, adicionalmente no expliqué que estaba en ubuntu 20.04 corriento en WSL de win 10., como dices el shell parece que interpreta de la forma que mencionas, saludos.

    Daniel Aguayo Catalan

    Daniel Aguayo Catalan

    studenthace 5 años

    Hola. No he visto el curso que dices pero algo sé de gnu/linux. Lo que señalas es debido a que si no pones comillas en el criterio de búsqueda, el intérprete o shell intentará expandir el comodín

    *
    antes de ejecutar el comando
    find
    , lo que podría resultar en que le pases el primer archivo resultante de la expansión como parámetro.

    Pero si pones el criterio entre comillas, el comando

    find
    entenderá el criterio lleva un comodín y lo usará para tratar todos los archivos.

    Por ejemplo: si tienes un archivo package.json en la ruta de búsqueda, no poner comillas al criterio

    *.json
    hará que la shell expanda el comodín resultando en el primer nombre de archivo que calce, en este caso siendo
    package.json
    , valor que se le entregará como criterio al parámetro
    -name
    de la orden
    find
    .

    Luego, si le pones comillas al criterio

    "*.json"
    , entonces la orden
    find
    entenderá que el criterio para su parámetro
    -name
    lleva un comodín que se usará contra cada archivo dentro de la ruta de búsqueda.

Introducción a Terminal y Línea de Comandos 2018

Introducción a Terminal y Línea de Comandos 2018

Explora la terminal y optimiza la navegación y ejecución de programas en sistemas operativos Unix. Conociendo y dominando la terminal, podrás invocar y ejecutar programas, crear directorios de los mismos y navegar en ellos de una manera veloz y eficiente.

Introducción a Terminal y Línea de Comandos 2018
Introducción a Terminal y Línea de Comandos 2018

Introducción a Terminal y Línea de Comandos 2018

Explora la terminal y optimiza la navegación y ejecución de programas en sistemas operativos Unix. Conociendo y dominando la terminal, podrás invocar y ejecutar programas, crear directorios de los mismos y navegar en ellos de una manera veloz y eficiente.