Hola a todos. tengo un problemilla y busqué repuestas por todos lados pero no pude resolverlo.
Es un trabajo para la facultad, estamos aprendiendo comandos en linux, así que ahí va mi problema.
Tengo que mostrar todas las lineas que contengan el texto "POSIX" de todos los archivos (incluyendo subdirectorio) en /etc. Y evitar los archivos binarios y aquellos archivos y directorios que no tienen permisos de lectura para mi usuario.
Bueno ese el problema. Para imprimir las lineas no hay problema, es lo único que hago bien :-P, el tema es que no se como evitar los archivos binarios, y los que son solo de permiso lectura para mi usuario.
Espero puedan darme una mano, les voy a estar agradecido.

??
A ver es que has dicho cosas contradictorias, en el segundo parrafo dices:"
"... evitar los archivos binarios y aquellos archivos y directorios que NO tienen permisos de lectura para MI usuario"
y en el tercer parrafo dices:
"... no se como evitar los archivos binarios, y los que son SOLO de permiso lectura para MI usuario"
Si me aclaras eso te puedo ayudar, siempre esta la forma de hacerlo, puede ser más/menos elegante con más/menos líneas, etc, pero siempre se puede hacer.
Saludos.
Deberías comentar lo que
Deberías comentar lo que tienes hecho ¿no?
Para ver que te falta o que te sobra...
Porque por lo que dices casi lo tienes.
Un saludo.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
A ver es que has dicho cosas
A ver es que has dicho cosas contradictorias, en el segundo parrafo dices:"
"... evitar los archivos binarios y aquellos archivos y directorios que NO tienen permisos de lectura para MI usuario"
Es verdad me contradije, me refiero a que solo tengo que buscar archivos con el texto "POSIX" que tengan permiso de lectura para mi usuario y no sean archivos binarios. en /etc y los subdirectorios de /etc.
A mi se me ocurrió utilizando grep y pipes pero no se bien como:
podria ser algo así??: ls -xal /etc | algo que me de como salida archivos con permiso de lectura y no binarios | grep "POSIX"
¿Con el texto POSIX dentro
¿Con el texto POSIX dentro del archivo o como parte del nombre?
Un saludo.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
Con el texto "POSIX" dentro
Con el texto "POSIX" dentro del archivo
sudo grep "posix" $(find
sudo grep "posix" $(find /etc/ -group dario -perm -400)
Pero no consigo filtrar los arhivos que son .bin..... sería con un flag del tipo
.... -not (-iname "*.bin") dentro del comando anterior, pero no me sale.
Sigue probando ya está casi resuelto.
Un saludo.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
Quizás de esta manera se
Quizás de esta manera se podrían filtrar los archivos binarios?
grep -r "POSIX" /etc | awk ' $4=="dario", $8!"*.bin"' (es solo una idea), no logro que funcione.
grep -r "POSIX" /etc | awk '
grep -r "POSIX" /etc | awk ' $4=="dario", $8!"*.bin"' (es solo una idea), no logro que funcione.
creo que adelante hay que agregarle un ls -l para que awk vea todos los campos
Así: sudo grep "posix"
Así:
Con eso buscas la palabra "posix" dentro de todos los archivos que encuentre find en la ruta /etc sin la extensión .bin del tipo fichero que pertenzca a tu grupo "dario" y con almenos permisos de lectura para su dueño.
Un saludo.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
Muchas gracias por todo
Muchas gracias por todo scorpyo, no se porque pero no me funciona. Ya estoy exhausto creo que me rindo
¿¿No te funciona o no te
¿¿No te funciona o no te salen resultados??
Mira que yo lo he probado y me funciona, pero no me arroja resultados en /etc, así que creé una carpeta para hacer pruebas.
Haz lo siguiente, crea dos archivos de texto con la palabra posix dentro de ellos, uno con extensión .bin y otro con la que te de la gana, y cópialos donde te plazca dentro de etc y ejecuta el comando que te dí.
Luego cambia su usuario para que sean tuyos.
Solo te tendría que salir el que no tiene extensión .bin.
Ejecuta el comando y verás si te arroja resultados.
Un saludo.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
Falta un sudo que no sé por
Falta un sudo que no sé por que te pide.....
Se queda un buen rato leyendo....
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
Macho, ahora resulta que no
Macho, ahora resulta que no te muestra el nombre del archivo, solo el resultado, no sé porqué cambia tanto de usarlo en la carpeta /etc a la carpeta que usé de pruebas...
si pones
sudo find /etc \( ! -name "*.bin" \) -type f -group dario -perm -400
te salen los ficheros que complen con los permisos y usuarios que quieres y sin la extenxión .bin.
Y con:
sudo grep "posix" ...... tienes que poder filtrarlos, pero ahora juntos no me sale como antes...
no sé.
Sigo mirando.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
Listo: sudo grep -l "posix"
Listo:
Con eso solo se imprime las rutas de archivo y no el contenido que encuentra grep con la palabra posix...
Pruébalo y me cuentas.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
Lo destripo:sudo grep -l
Lo destripo:
sudo grep > ejecuta grep como super usuario
-l > solo muestra las rutas de los archivos
"posix" > la palabra que buscamos
$() > crea una especie de variable en la que se encuentran los resultados que salgan de los comandos en su interiór
sudo find /etc > hace la búsqueda en /etc como administrador
\( ! -name "*.bin" \) > Se evitan los archivos con extensión .bin para eso se usa el [ ! ]
-type f > Solo muestra los elementos del tipo fichero.
-group dario > solo mostrará resultados que pertenezcan al grupo dario
-perm -400 > solo mostrará resultados que tengan como mínimo, permisos de lectura para el dueño.
Un saludo.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
No
A ver los archivos binarios no son los de extensión .bin jaja. Añade los parámetros para grep (imagino lo estarás haciendo con grep):
--binary-files=without-match # Para omitir archivos binarios (-I).
--recursive # Para que sea recursivo (-r).
--no-messages # Para que en los archivos que no tengas permisos de lectura no te imprima el error (-s).
--word-regexp # Para que te coja "solo" el texto que buscas (-w).
Como ves omite los binarios ya que simplemente los pasa como que no tienen coincidencias. El recursivo que necesitas. La sigiuente opción, si el grep pasa por un archivo del cual no tienes permisos de lectura, simplemente lo omite y te lanza el error, asi que poniendole que no muestre los errores lo omitira como tu quieres. La última es para que solo te busque "POSIX" y no por ejemplo "MIPOSIX".
Saludos.
Pues entonces lo que yo hago
Pues entonces lo que yo hago no vale :( jeje
Un saludo.
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
JEje parece que es como dice
JEje parece que es como dice pwned si haces:
grep -rI s "POSIX" /etc
me busca:
con -r de forma recursiva en /etc
con -I ignoro binarios
con -s omite los mensajes de error.
Y los archivos que no tengan permisos de lectura directamente no puede leerlos
En la consola arroja este resultado:
~$ grep -rIs "POSIX" /etc
/etc/alternatives/bf_tar:# This file dumps a bogofilter to standard output in POSIX-tar format.
/etc/alternatives/fakeroot:*) # POSIX getopt ?
/etc/security/limits.conf:# - msgqueue - max memory used by POSIX message queues (bytes)
/etc/default/samba:# This is a POSIX shell fragment
/etc/speech-dispatcher/speechd.conf:# PulseAudio is a sound server for POSIX and WIN32 systems.
:-D
Vaya al final era muuy
Vaya al final era muuy sencillo jaja, No importa estuvo bueno aprendí sobre otros comandos también.
Creo que puede darse por solucionado este post. Gracias a todos.
SALUDOS.
Si no llega a a ser por el
Si no llega a a ser por el compañero anterior pwned ... y si me llegas a dejar una tarde más te lo saco con 15 lineas! jajaja
Un saludo
Si entro en Window$ estoy más tenso que en el bautizo de un gremlin.
Linux user: 545.017
Por favor, si solucionas el hilo añade [Solucionado] al título.
:)
Me alegro de que te haya servido.