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 demore
yless
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).
- Hay una variable llamada LESS_IS_MORE
- Como hecho indiscutible de naturaleza menor (en algunos sistemas operativos)
- Como una simple declaración en inglés
Para aclarar estos:
- Hay una variable llamada
LESS_IS_MORE
.- los
less
El comando admite una variable de entorno / shell llamadaLESS_IS_MORE
. losless
El comando actúa un poco como el antiguomore
comando por defecto, pero si elless
comando ve que esta variable se establece en un valor de 1 (el número uno), entonces elless
El comando ofrecerá menos funciones en un intento de aumentar su compatibilidad con el comando pager más antiguo que se llamamore
. - Esto no es específico de Ubuntu y es compatible con
less
en todas las plataformas. Esto es mencionado porless
(1) (less
“página de manual”), sección titulada “Compatibilidad conmore
”.
- los
- 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ó elless
programa comenzó con un nombre de archivo demore
, entonces lo que el programa nombróless
hará es actuar con mayor compatibilidad con los antiguosmore
comando, similar a lo que haría si elLESS_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 llamadomore
(que es muy recomendable por compatibilidad con scripts y algunos comportamientos de usuario bastante comunes), pero elless
ymore
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 llamadoless
Realmente es el mismo código ejecutable que ejecuta el sistema operativo cuando ejecuta el comando llamadomore
. (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 queless
esmore
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
esmore
, literalmente “. entonces la persona probablemente esté tratando de aclarar que elless
comando y elmore
comando comparten los mismos bits ejecutables. Esto se puede hacer como un “vínculo físico” (implementado usandoln
) más eficientemente, pero también podría implementarse mediante un “enlace simbólico” (implementado usandoln -s
), o al tener una copia duplicada de los bits del archivo ejecutable (que se puede implementar fácilmente usandocp
).
- los
- 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 elless
El comando es una mejor experiencia que la que ofrece el comando pager más antiguo y tradicional (que se llamamore
). Desde la experiencia de usar el comando llamadoless
es una experiencia significativamente mejor, la gente siente que es apropiado describir esa experiencia más agradable como “¡MÁS!”.
- Esta es una afirmación obstinada (con la que mucha gente está de acuerdo), afirmando que la
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 “
less
esmore
“ - 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.