bala@hp:~$ echo "Hello World" > stdout bala@hp:~$ cat stdout Hello World bala@hp:~$ echo "Hello World" > /dev/stdout Hello World Por favor, aclare cuál es la diferencia entre stdout y /dev/stdout
Nota :
bala@hp:~$ file stdout stdout: ASCII text bala@hp:~$ file /dev/stdout /dev/stdout: symbolic link to `/proc/self/fd/1'Amablemente ayude a saber la diferencia.
En tu caso
stdout es un archivo normal, creado en el mismo directorio donde está ejecutando el comando.
Entonces, cuando está redirigiendo la salida de echo a stdout , se escribe en el archivo . Necesita hacer cat (como ejemplo, aquí lo hizo) para ver el contenido en pantalla aquí.
/dev/stdout es un archivo de dispositivo , que es un enlace a /proc/self/fd/1 , lo que significa que se refiere al descriptor de archivo 1 que tiene el proceso actual.
Entonces, cuando está redirigiendo la salida de echo a /dev/stdout , se envía directamente a la salida estándar (la pantalla).
stdout por sí solo es solo un archivo en el directorio actual, no es diferente a finances.txt . No tiene nada que ver con la salida estándar del proceso, aparte del hecho de que está redirigiendo la salida estándar hacia él.
Por otro lado, /dev/stdout es un enlace a un archivo especial en el sistema de archivos procfs , que representa el descriptor de archivo 1 del proceso que lo usa 1 .
Por lo tanto, tiene una conexión muy real con la salida estándar del proceso.
1 El sistema de archivos procfs contiene todo tipo de información maravillosa sobre el sistema y todos sus procesos (suponiendo que un proceso tenga permisos para acceder a ellos, que debería tener para /proc/self ).