Los commands de UNIX ayudan: encontrar

Estoy tratando de aprender los commands de UNIX y estoy jugando este juego para aprender y estoy realmente atrapado en este momento. Estoy en un server a través de ssh y el directory está lleno de files y carpetas aleatorias y la contraseña para el siguiente nivel está dentro de uno de los files. Me han dicho que el file tiene los siguientes attributes:

  • legible por humanos
  • 1033 bytes
  • no ejecutable

¡Supongo que debería usar el command find e intenté find ! -executable find ! -executable pero eso devolvió una carga de files. La única ayuda legible por humanos que puedo encontrar en el manual o en línea es imprimir el tamaño de los files en legible por humanos. Entonces, ¿estoy un poco perdido allí?

También intenté find ~ -size 1033b pero eso no devolvió nada. Pero cuando traté de find ~ -size -1033b devolvió todos los files en el directory.

Related of "Los commands de UNIX ayudan: encontrar"

Para filtrar los nombres de file legibles por el ser humano, puede hacer uso del nombre de la class de caracteres [:print:] ( imprimible ). Encontrará más información sobre dichas classs en el manual de grep .

 find . -type f -size 1033c -name "[[:print:]]*" ! -executable 

Pensándolo bien, el requisito de "lectura humana" podría referirse al contenido del file, en lugar de su nombre. En otras palabras, estaría buscando files de text . Eso es un poco más complicado. Como @D_Bye sugirió en un comentario, debe usar el command de file para determinar el tipo de contenido del file. Pero no sería una buena idea ejecutar un file después de una tubería, porque complicaría la tarea de mostrar el nombre del file. Esto es lo que sugiero:

 find . -type f -size 1033c ! -executable -exec sh -c 'file -b $0 | grep -q text' {} \; -print 

A continuación, se explica brevemente cómo funciona la parte del file :

  • El pnetworkingicado -exec ejecuta sh -c 'file -b $0 | grep -q text' FILENAME sh -c 'file -b $0 | grep -q text' FILENAME para cada FILENAME que satisfaga todas las condiciones anteriores (tipo, tamaño, no ejecutable).
  • Para cada uno de esos files, un shell ( sh ) ejecuta este breve script : file -b $0 | grep -q text file -b $0 | grep -q text , reemplazando $0 con el nombre de file.
  • El progtwig de file determina el tipo de contenido de cada file y genera esta información. La opción -b impide imprimir el nombre de cada file probado.
  • grep filtra la salida proveniente del progtwig de file , buscando líneas que contengan "text" . (Vea usted mismo cómo se ve una salida típica del command de file ).
  • Pero grep no da salida al text filtrado, porque tiene la opción -q (silenciosa) dada. Lo que hace, es simplemente cambiar su estado de salida a 0 (que representa "verdadero" – se encontró el text filtrado) o 1 (que significa "error" – el text "text" no apareció en el resultado del file ).
  • El estado de salida verdadero / falso procedente de grep se pasa más lejos por sh para find y actúa como el resultado final de la -exec sh -c 'file $0 | grep -q text' {} \; completa del -exec sh -c 'file $0 | grep -q text' {} \; " -exec sh -c 'file $0 | grep -q text' {} \; ".
  • En caso de que la testing anterior sea verdadera , se ejecuta el command -print (es decir, se imprime el nombre del file comprobado).
 find . -type f -readable -size 1033c ! -executable 

Tenga en count que utilicé c lugar de b para el tamaño del file. b es para bloques de 512 bytes. c es para bytes reales.

todo lo que escribí fue:

 find -size 1033c ! -executable 

y obtuve el file. Aparentemente, la parte legible para los humanos era desanimarte.

 find . -readable -size 1033c \! -executable 

Creo que para el juego, sin embargo, la syntax correcta es:

 file ./* 

Obtiene una devolución que enumera en qué consiste cada file. Funcionó muy bien para lo que estás tratando de lograr en el juego Bandit. La bola curva real para esta tarea es que cada file comienza con – (guión).

file -size 1033c

Utilice este command y encontrará el file exacto, es decir,

encontrar -tamaño 1033c
cat /home/bandit5/inhere/maybehere07/.file2

Contraseña – DXjZPULLxYr17uwoI01bNLQbtFemEgo7

rajab@iitk.ac.in