Hace 4 años | Por ciberninjas a blog.robertelder.org
Publicado hace 4 años por ciberninjas a blog.robertelder.org

Robert Elder, encuentra un fallo común, a la hora de la utilización del comando de Linux (Find) y posteriormente; analiza y explica paso a paso de que se trata el error en cuestión y la forma correcta de ejecutarlo de forma correcta si no se desea cometer un grave error.

Comentarios

D

#10
Falacia Ad Hominem…

D

#20
No justifica nada. Señala que el meneo está equivocado. En sistemas GNU no funciona como describe el tipo del meneo. Eso de «find de Linux» es un invento del tipo, y por lo visto también tuyo.

Pedantería dice... cuando alguien habla del «find de Linux», ese alguien no sabe de qué está hablando realmente, y luego pasan cosas como tu comentario... una respuesta a quién le ha dado en los morros. Lo tildas de «pedante» y te quedas tan ancho.

En todos los sitios se enseña cómo funcionan las cosas en sistemas Unix y luego en sistemas que no son Unix, como GNU. El meneo debería de hablar del comando Unix (o POSIX), pero nunca GNU y mucho menos Linux, que no es un SO. Hay cientos de sistemas con núcleo Linux que no son un SO. Y cientos de sistemas con núcleo Linux que no son POSIX ni tampoco GNU.

PauMarí

#22 que me vas a contar, pase por Minix y por Irix antes de llegar a Linux pero no voy por la vida dando lecciones a los demás.....

D

#23
Nunca llegaste a Linux... porque Linux nunca fue un sistema operativo...
http://ftp.funet.fi/pub/linux/historical/kernel/old-versions/RELNOTES-0.01

No es cuestión de dar lecciones, es cuestión de saber lo que haces, de conocer la historia. Sin embargo prefieres dar lecciones diciendo que soy pedante y así justificar tu manipulación. Eso se llama falacia de hombre de paja, ya que desvirtúas el argumento del contrario: https://es.wikipedia.org/wiki/Falacia_del_hombre_de_paja

PauMarí

#24 que sí hombre, que sí....

pax0r

ojo spoiler: usa comillas.

D

En GNU «set -f» o «set -o noglob»: https://www.gnu.org/software/bash/manual/bash.html

Shotokax

#19 la culpa fue mía porque debí haberme asegurado poniendo comillas y porque la responsabilidad profesional era mía, pero el que introdujo el espacio erróneamente fue él.

Shotokax

Como dice el propio artículo; el uso inadecuado de comillas, sobre todo por su omisión, puede ser muy peligroso en Bash o en cualquier intérprete de comandos de GNU/Linux.

Tuve un problema en una de las empresas en las que trabajé porque me pidieron por escrito que borrara un fichero larguísimo del tipo:

/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con /nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos

Bueno, en realidad

Entonces ejecuté:

rm -fR /fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con /nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos

Vi que el proceso de borrado tardaba demasiado, sospeché y lo paré. Al mirar bien me di cuenta de que el que me había hecho la petición por escrito, torpemente, había introducido un espacio, con lo cual no estaba borrando el directorio solicitado, sino uno que estaba mucho más arriba en el árbol del sistema de ficheros. El comando rm estaba borrando /fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con y había tomado /nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos/fichero/con/nombre/interminable/debajo/de/un/montón/de/subdirectorios/con/nombres/larguísimos como segundo parámetro. Si hubiera utilizado comillas me habría dado un error diciendo que el directorio con el espacio en medio no existe.

Por suerte había backup.

JohnSmith_

#15 "había hecho la petición por escrito, torpemente"

Pues, sin ningun animo de ofenderte ... la culpa es solo tuya.

D

¿Find? ¿qué find? ¿GNU, BSD, BusyBox...? «find» no es un comando de Linux. Linux es un núcleo, y los núcleos no tienen comandos.
Hay múltiples comandos «find» que se pueden ejecutar en un SO con Linux como núcleo. Es importante saber a qué «find» se refiere.

D

#1 se supone que se refiere al posix.

ciberninjas

#2

D

#2
En GNU «set -f» o «set -o noglob»: www.gnu.org/software/bash/manual/bash.html

D

#1 "Es importante saber a qué find se refiere" .... Informáticos que se creen hackers

PauMarí

#1 si no intuyes a que se refiere quizá no deberías comentar ya que queda claro solo en el título de que va.
Además, mucha gente sabe que Linux es un kernel y que igualmente el genérico se refiere a GNU/Linux y no lo va repitiendo erre que erre pero algunos todavía estáis con lo mismo... wall wall

ciberninjas

#4 Sí, de hecho por hay en el propio artículo usan la búsqueda de "comando en linux" pero bueno..
Cada uno con lo suyo.. Si siguieramos esa línea. Seguramente no podríamos hablar tan siquiera de programas, como genérico, deberíamos hablar de procesos de cada programa; y etc, etc. todo podría ser sacado de lugar; pero en fin.

Ni modo con Meneame.. La gente entra a lo que entra por aquí.

D

#4 #6
La intuición dejáselo a los que te predicen el futuro tirandote cartas.
Mucha gente no sabe nada y lo otro te lo inventas, eso sin entrar en el tema semántico y gramatical que lo hace imposible.

ciberninjas

#8 No veo intuición por ninguna parte. En el 99% de Internet la gente utiliza Linux de forma masiva. Lo mismo vivo yo en otro planeta.

No veo criticas en muchas noticias que pueden usar la palabra dentro de un contexto más o menos concreto; al igual que Linux. Muchas otras más palabras, por ejemplo en la actualidad: la palabra aplicaciones. No me invento nada en absoluto.

Habrá que diferenciar lo que se usa por mayoría en la sociedad y es aceptado como tal; al uso del lenguaje más técnico al 100%. Digo yo.

Si lo que deseas es llegar o que las personas que no saben nada, puedan comprender algo; mejor decir Linux que no unix o posix.

El tema semántico y gramatical que lo hace imposible. El segundo, que me viene con esa notita culta en corto plazo de tiempo. No sabía yo, que esto etuviese lleno de eruditos; yo lo entiendo a la perfección.

ciberninjas

#8 Aunque mira tienes razón, lo mejor es que deje Menéame; no estoy preparado para escribir entre personas tan cultas como tú.

Con ese nickname.. En fin.. Lo que hay que leer.

PauMarí

#6 cierto, si empezamos así cualquier artículo sobre teléfonos móviles es erróneo ya que los teléfonos 'esos' lo que són son "movibles", no "móviles"... y así otras tantas...

D

#4
Si no sabes que el bloguero está equivocado, quizá no deberías comentar.
En GNU «set -f» o «set -o noglob»: https://www.gnu.org/software/bash/manual/bash.html

De nada.

PauMarí

#18 y eso que tiene que ver con el comentario, ¿intentas justificar tu pedantería? Cuando alguien habla del "find de Linux" la inmensa mayoría de "gente" sabe a que se refiere....

ciberninjas

#1 Cierto. Debí decir Unix.. Mis disculpas, oiga.

D

Eres un pesado y ni te has leído el artículo. Cumples todo lo requerido para ser nombrado cyber wannabe

D

#13
En GNU «set -f» o «set -o noglob»: https://www.gnu.org/software/bash/manual/bash.html