Diferencia entre gato y gata

Diferencia entre cat y echo

El intérprete de comandos redirige la entrada estándar al archivo nombrado: abre el archivo y transmite su contenido a cat en la entrada estándar. cat no recibe argumentos. Sin argumentos, imprime lo que haya en stdin: el contenido del archivo.

Cuando cat se ejecuta sin archivos de argumentos, leerá de la entrada estándar (por ejemplo, como si escribiera directamente en cat) y escribirá en la salida estándar. Pero < archivo1.txt le dice al shell (por ejemplo, bash) que abra el archivo file1.txt, y lo redirija a cat a través de la entrada estándar:

Como puede ver, el efecto es el mismo, que cat leerá el archivo dado; la diferencia es quién abre el archivo. En el primer caso, se le dice a cat que abra el archivo por sí mismo, mientras que en el segundo caso el shell lo abre, y cat no sabe nada excepto que hay un flujo de datos que entra por su entrada estándar, que se supone que debe imprimir.

Cat linux

Estaba trabajando en un tutorial y vi el uso de ambos cat myfile.txt y cat < myfile.txt. ¿Hay alguna diferencia entre estas dos secuencias de comandos? Parece que ambos imprimen el contenido de un archivo al shell.

Técnicamente, podrían tener efectos diferentes. Por ejemplo, sería posible tener una implementación del shell que fuera más (o menos) privilegiada que el programa cat. En ese caso, uno podría no abrir el archivo, mientras que el otro sí.

->  La vida de las abejas resumen

No hay ninguna diferencia importante visible en su caso de prueba. La más obvia sería el mensaje de error que se obtiene si no hay un archivo llamado miarchivo.txt en el directorio actual, o si no se le permite leerlo.

En un caso más general, una diferencia importante es el uso de redirecciones no puede ser utilizado para imprimir el contenido de más de un archivo, que es después de todo el propósito original del comando cat (es decir, catenate). Tenga en cuenta que el intérprete de comandos intentará de todos modos abrir todos los archivos pasados como entrada redirigida, pero sólo pasará realmente el último a cat, a menos que utilice zsh y su multios «zshism».

Comando cat

(Así que en algunos otros comandos -es decir, no el comando mostrado en la pregunta- puede haber una diferencia. En particular, si usted no puede acceder a archivo.txt pero el usuario root sí, entonces sudo cat archivo.txt funciona pero sudo cat < archivo.txt no).

Una gran diferencia es con los caracteres globbing *, ?, o [ (comodines) o cualquier otra cosa que el shell pueda expandir en múltiples nombres de archivo. Cualquier cosa que el intérprete de comandos expanda en dos o más elementos, en lugar de tratarla como un solo nombre de archivo, no puede abrirse para la redirección.

->  Un gato macho esterilizado puede tener relaciones

A primera vista, cat archivo.txt y cat < archivo.txt se comportan igual, pero hay mucho más detrás de esa diferencia de un solo carácter. Ese único carácter < cambia la forma en que el shell entiende file.txt, quién abre el archivo y cómo se pasa el archivo entre el shell y el comando. Por supuesto, para explicar todos estos detalles también necesitamos entender cómo funciona la apertura de archivos y la ejecución de comandos en el shell, y esto es lo que mi respuesta pretende conseguir: educar al lector, en los términos más sencillos posibles, sobre lo que realmente ocurre en estos comandos aparentemente simples. En esta respuesta encontrarás múltiples ejemplos, incluyendo aquellos que usan el comando strace para respaldar las explicaciones de lo que realmente sucede detrás de escena.

Apóstrofe de gato

(Así que en algunos otros comandos -es decir, no el comando mostrado en la pregunta- puede haber una diferencia. En particular, si usted no puede acceder a archivo.txt pero el usuario root sí, entonces sudo cat archivo.txt funciona pero sudo cat < archivo.txt no).

Una gran diferencia es con los caracteres globbing *, ?, o [ (comodines) o cualquier otra cosa que el shell pueda expandir en múltiples nombres de archivo. Cualquier cosa que el intérprete de comandos expanda en dos o más elementos, en lugar de tratarla como un solo nombre de archivo, no puede abrirse para la redirección.

A primera vista, cat archivo.txt y cat < archivo.txt se comportan igual, pero hay mucho más detrás de esa diferencia de un solo carácter. Ese único carácter < cambia la forma en que el shell entiende file.txt, quién abre el archivo y cómo se pasa el archivo entre el shell y el comando. Por supuesto, para explicar todos estos detalles también necesitamos entender cómo funciona la apertura de archivos y la ejecución de comandos en el shell, y esto es lo que mi respuesta pretende conseguir: educar al lector, en los términos más sencillos posibles, sobre lo que realmente ocurre en estos comandos aparentemente simples. En esta respuesta encontrarás múltiples ejemplos, incluyendo aquellos que usan el comando strace para respaldar las explicaciones de lo que realmente sucede detrás de escena.

->  Como se toma el sucralfato
Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad