Tengo un ejercicio para poner en un archivo algunos datos (* conf de algunos directorios) y necesito hacer esto en segundo plano. Lo hice y me pregunto cuál es el significado de los mensajes de salida:

[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 & 

Enter sube esta fila:

[1] 2533 

¿Qué significa? Después de otro Enter, aparecen otros mensajes

[A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 

¿Qué significa? ¿Qué es «Salida 2»?

Ingrese los resultados de una verificación; parece que todo está bien.

[A@localhost tests]$ [A@localhost tests]$ ls -l test1_6_conf.txt -rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt [A@localhost tests]$ 

Estoy usando CentOS 6.4, Emulador de terminal Gnome.

Respuesta

¿Qué significa? ¿Qué es «Salida 2»?

Es el estado de salida de ls. Ver man para ls:

 Exit status: 0 if OK, 1 if minor problems (e.g., cannot access subdirectory), 2 if serious trouble (e.g., cannot access command-line argument). 

Supongo que la razón es que tienes muchos archivos * conf en /etc y sin archivos * conf en / usr. De hecho, ls -ld /usr/*conf; habría tenido el mismo efecto.

Entonces, si lo hago en mi computadora ls para un file:

ls main.cpp; echo $? main.cpp 0 

Y para un archivo que no existe:

ls main.cppp; echo $? ls: cannot access main.cppp: No such file or directory 2 

O como un proceso de fondo ls para un archivo que no existe:

>ls main.cppp & [1] 26880 ls: cannot access main.cppp: No such file or directory [1]+ Exit 2 ls main.cppp 

Comentarios

  • ¡O! Gracias. Ahora ' me he dado cuenta de que ls /usr/*conf devuelve 2 ya que no hay ningún nombre de archivo que contenga " conf ".
  • @ALZ, tenga en cuenta que devuelve 2 porque no puede encontrar el archivo llamado /usr/*conf. Y bash le pasa ese nombre de archivo porque no puede ' t encontrar archivos que coincidan con ese patrón. Mejores shells como zsh habrían devuelto un error " sin coincidencia " y no ejecutado ls en absoluto.

Responder

Ese comando ha terminado con un estado de salida diferente a 0 (correcto).

Intente no poner (&) al final , para ver qué sucede.

Si ese comando tarda mucho en ejecutarse, puede verificarlo con:

lnx #> trabajos -l

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *