Saltar al contenido

¿Cuál es la diferencia entre los comandos “más” y “menos”?

Agradecemos tu apoyo para difundir nuestras secciones sobre las ciencias de la computación.

Solución:

more es el mayor, less es una mejora y most es una mejora en eso.

Comparación corta:

  • more: navegación hacia adelante y navegación hacia atrás limitada.
  • less: navegación hacia adelante y hacia atrás y también tiene opciones de búsqueda. Puede ir al principio y al final de un archivo al instante. Además, puede cambiar a un editor (como abrir el archivo en vi o vim). Es notablemente más rápido que el editor para cuando el archivo es grande.
  • most: tiene todas las características de more y less pero también puede abrir varios archivos, cerrar 1 archivo a la vez cuando tiene varios archivos abiertos, permite bloquear y desplazar las ventanas abiertas y permite dividir las ventanas abiertas.

Los 3 usan el h para permitirle ver las combinaciones de teclas del comando.

less te permite navegar tanto hacia arriba como hacia abajo.

Esa es la diferencia más importante, pero hay muchas otras. less proporciona numerosas funciones más allá de las de more. Puedes presionar H en less y le mostrará su ayuda abreviada, explicando cómo utilizar sus diversas funciones interactivas.

Los mas comunes son Barra espaciadora o Página abajo para bajar una pantalla de texto y B y Página arriba para retroceder una pantalla llena de texto. Las cuatro flechas keys funcionan (aunque las flechas hacia arriba y hacia abajo son las más útiles).

less también difiere de more en algunos aspectos relacionados con el rendimiento, el uso de recursos y la acomodación de terminales inusuales. Como man less dice:

Menos es un programa similar a más (1), pero tiene muchas más funciones. Menos no tiene que leer todo el archivo de entrada antes de comenzar, por lo que con archivos de entrada grandes se inicia más rápido que los editores de texto como vi (1). Less usa termcap (o terminfo en algunos sistemas), por lo que puede ejecutarse en una variedad de terminales. Incluso hay un soporte limitado para terminales de copia impresa. (En un terminal de copia impresa, las líneas que deben imprimirse en la parte superior de la pantalla tienen el prefijo de intercalación).

Los comandos se basan en ambos más y vi. Los comandos pueden ir precedidos de un número decimal, denominado N en las descripciones siguientes. Algunos comandos utilizan el número, como se indica.

He estado comparando less a una implementación tradicional de more. En Ubuntu, more es tal implementación. Sin embargo, si invoca less pero como el nombre more–como sucedería si hiciera un enlace simbólico o un enlace duro a less llamado more y ejecutó eso, luego se comporta de manera diferente, se asemeja a more estéticamente pero permitiéndole moverse tanto hacia arriba como hacia abajo en los documentos.

La broma

Hay un viejo chiste que consta de tres palabras: “menos es más”. (Este es el “juego de palabras” al que se refiere el segundo comentario de guillermo chamorro a la pregunta.) Quizás una de las razones por las que a la gente le gusta tanto el chiste es que la declaración se puede entender de tres maneras diferentes, por lo que no hay claridad sobre de qué manera se entiende. Sin embargo, las tres formas son precisas, al menos en algunos sistemas operativos. (El punto # 2 podría no aplicarse a Ubuntu, y entiendo que este es un sitio enfocado en Ubuntu. Sin embargo, Ubuntu deriva de Debian y desea tener un historial sólido de ideas tomadas y compartidas con el resto de Unix y Unix- sistemas ish. Por lo tanto, comprender lo que hacen otros sistemas operativos no es algo malo).

  1. Hay una variable llamada LESS_IS_MORE
  2. Como hecho indiscutible de naturaleza menor (en algunos sistemas operativos)
  3. Como una simple declaración en inglés

Para aclarar estos:

  1. Hay una variable llamada LESS_IS_MORE.
    • los less El comando admite una variable de entorno / shell llamada LESS_IS_MORE. los less El comando actúa un poco como el antiguo more comando por defecto, pero si el less comando ve que esta variable se establece en un valor de 1 (el número uno), entonces el less El comando ofrecerá menos funciones en un intento de aumentar su compatibilidad con el comando pager más antiguo que se llama more.
    • Esto no es específico de Ubuntu y es compatible con less en todas las plataformas. Esto es mencionado por less(1) (less“página de manual”), sección titulada “Compatibilidad con more”.
  2. Como hecho indiscutible de naturaleza menor (en algunos sistemas operativos)
    • los less El comando admite un comportamiento que muchos programas utilizan en entornos similares a Unix, que es el comportamiento de comprobar con qué nombre de archivo se ejecutó. Si la línea de comando que ejecutó el less programa comenzó con un nombre de archivo de more, entonces lo que el programa nombró less hará es actuar con mayor compatibilidad con los antiguos more comando, similar a lo que haría si el LESS_IS_MORE se ejecuta el comando.
    • Algunos sistemas operativos se han basado en esta funcionalidad y no se han molestado en incluir un programa separado llamado more. Bueno, para ser claros, hay un comando disponible llamado more (que es muy recomendable por compatibilidad con scripts y algunos comportamientos de usuario bastante comunes), pero el less y more Los comandos son ambos “enlaces duros” al mismo flujo de bits de código ejecutable. Entonces, el código ejecutable que ejecuta el sistema operativo cuando ejecuta el comando llamado less Realmente es el mismo código ejecutable que ejecuta el sistema operativo cuando ejecuta el comando llamado more. (Esto no es solo el caso de una copia idéntica del código que se está ejecutando. Literalmente, los mismos bits se cargan al leer literalmente desde la misma ubicación exacta del dispositivo de almacenamiento de datos, por lo que es literalmente el mismo código que se utiliza.) Entonces, la afirmación de que less es more se refiere a una verdad literal (fáctica, sin opiniones, demostrable), ya que estos son literalmente exactamente el mismo programa, ya que ambos programas están usando literalmente exactamente el mismo código ejecutable. (Sin embargo, el comportamiento del programa puede diferir según el comando que se utilizó para ejecutar el programa).
    • Si alguien dice “less es more, literalmente “. entonces la persona probablemente esté tratando de aclarar que el less comando y el more comando comparten los mismos bits ejecutables. Esto se puede hacer como un “vínculo físico” (implementado usando ln) más eficientemente, pero también podría implementarse mediante un “enlace simbólico” (implementado usando ln -s), o al tener una copia duplicada de los bits del archivo ejecutable (que se puede implementar fácilmente usando cp).
  3. Como una simple declaración en inglés
    • Esta es una afirmación obstinada (con la que mucha gente está de acuerdo), afirmando que la less El comando tiene un mayor número de características agradables, por lo que el less El comando es una mejor experiencia que la que ofrece el comando pager más antiguo y tradicional (que se llama more). Desde la experiencia de usar el comando llamado less es una experiencia significativamente mejor, la gente siente que es apropiado describir esa experiencia más agradable como “¡MÁS!”.

A lo largo de esta respuesta, me esforcé por marcar notablemente todas las referencias al comando. Sin embargo, la mejor manera de experimentar la broma es verbalmente, porque eso se suma a algo de ambigüedad. Verbalmente, diciendo

  • “MENOS ES MÁS”
  • o “lessesmore
  • o “less es MÁS! “

podrían pronunciarse todos exactamente de la misma manera, por lo que si el tono de voz no indica claramente ningún énfasis particular en palabras específicas, entonces el simple hecho de escuchar las tres palabras no da una indicación real de qué enunciados precisos, si es que hubo alguno, fueron destinado a ser referenciado en mayor medida que las otras declaraciones.

Dejando a un lado el humor, esto también puede usarse como una forma de medir la familiaridad de alguien con este programa de comandos de Unix. Muchas personas no leen la “página de manual” para cada comando antes de usar el comando (especialmente cuando aprenden a usar de manera efectiva algunos de los comandos más básicos en la primera plataforma Unix que usan), por lo que muchas personas terminan aprendiendo sobre la variable LESS_IS_MORE cuando esta broma se explica completamente. Entonces, decir verbalmente esta broma puede ser una forma de verificar cuánto reconocimiento o confusión parece tener el destinatario.

(Si la persona se ve un poco perpleja, eso podría ser una indicación de que este puede ser un buen momento para ayudar a educar a la persona sobre los múltiples aspectos de esta declaración. Según el primer punto o dos, terminan conociendo un un poco más sobre el comportamiento de un comando común. Y si recuerdan el chiste, pueden recordar el último punto, que les ayuda a recordar la existencia del less comando con el que muchas personas están más felices, y recuerde qué comando generalmente proporciona una mejor experiencia en muchas plataformas).

Compatibilidad con DOS

Hay un aspecto en el “more“Comando que vale la pena mencionar, que podría hacer que parezca más agradable (en la opinión de al menos algunas personas) que el”less“Comando.

Muchos, muchísimos sistemas Unix (-ish) vienen con un comando llamado more y un comando llamado less, integrado, instalado como parte de los sistemas operativos. (El comando llamado most, que se basa aún más en la less comando, se menciona en una de las otras respuestas, pero está preinstalado en muchos menos sistemas. Por lo tanto, primero debe instalarse el programa). more El comando también puede estar preinstalado en una mayor cantidad de computadoras, incluidas las computadoras que normalmente no se consideran diseñadas principalmente para la compatibilidad con Unix.

En MS-DOS y plataformas similares / compatibles, incluido el moderno Microsoft Windows, lo siguiente funcionará exactamente como lo hace con Unix:

  • more < filename.txt

También puede canalizar more. Una forma típica de demostrar esto es mostrar un comando que revela el contenido de un archivo de texto. En Unix, eso se hace a menudo usando cat. MS-DOS no tiene cat comando, pero en su lugar usa type. (Unix tiene un type comando que hace algo bastante diferente.) Entonces:

  • Unix: cat file.txt | more
  • DOS: type file.txt | more

(Recuerde, cuando menciono DOS, eso también se aplica a Microsoft Windows moderno, sin mencionar otros sistemas como OS / 2. Por lo tanto, estas referencias de DOS son tan relevantes para el mundo moderno de hoy como lo que es Microsoft Windows).

Como ejemplo más moderno, lo siguiente funciona en sistemas modernos de Microsoft Windows y también en muchos sistemas Unix:

  • netstat -na | more

Con las versiones modernas, también puede especificar uno o más nombres de archivo en la línea de comando. Si lo hace, se mostrará el primer archivo y luego se mostrará el siguiente archivo.

  • more fileone.txt filetwo.txt

Mientras que la less está disponible para MS-DOS, Microsoft Windows y otros sistemas operativos, el programa a menudo no viene incluido. Entonces el less El comando no está disponible a menos que se haga algún esfuerzo para instalar el sistema. Si ingresa a un laboratorio de computación en el que no ha estado antes, es muy probable que el comando llamado more puede estar disponible, mientras que el comando llamado less normalmente solo está disponible en plataformas Unix. Para algunas personas, esto puede ser una ventaja para el comando llamado more lo cual es lo suficientemente significativo como para que prefieran acostumbrarse a ejecutar ese comando.

Misc

No trato de proporcionar la respuesta completa aquí, porque hacerlo sería redundante con las otras respuestas. En cambio, decidí incluir información que no veía en ningún otro lugar. Entonces, esta respuesta está diseñada para complementar algunas otras respuestas. Espero que haya disfrutado de la información presentada aquí, pero definitivamente revise las otras respuestas. Ambas respuestas preexistentes (publicadas antes de esta) también proporcionaron información adicional.

Si piensas que te ha sido de provecho este post, sería de mucha ayuda si lo compartes con el resto programadores de este modo nos ayudas a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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