{"id":67,"date":"2013-02-21T14:31:26","date_gmt":"2013-02-21T14:31:26","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/?p=67"},"modified":"2013-02-21T14:38:23","modified_gmt":"2013-02-21T14:38:23","slug":"tuberias-pipes","status":"publish","type":"post","link":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/tuberias-pipes\/","title":{"rendered":"Tuber\u00edas (pipes)"},"content":{"rendered":"<p>Quiz\u00e1s la utilidad m\u00e1s potente de la entrada\/salida est\u00e1ndar es la posibilidad de encadenar comandos a trav\u00e9s del uso de \u00abtuber\u00edas\u00bb (pipes), que permiten que la salida de un comando sirva como entrada a otro.<\/p>\n<p>Por ejemplo, si queremos ver el contenido del directorio \/usr\/bin podemos utilizar el comando\u00a0<em>ls<\/em>\u00a0como sigue:<\/p>\n<pre>ls \/usr\/bin<\/pre>\n<p>El problema es que este directorio contiene demasiados ficheros y \u00e9stos desaparecen de la pantalla muy r\u00e1pidamente al visualizarlos. Para solucionarlo, ser\u00eda \u00fatil tener alguna forma de visualizar textos que dividiera la visualizaci\u00f3n en p\u00e1ginas a trav\u00e9s de las cuales pudi\u00e9ramos navegar con mayor comodidad.<\/p>\n<p>El comando\u00a0<em>more<\/em>\u00a0realiza una funci\u00f3n como la que hemos descrito. As\u00ed, si deseamos visualizar p\u00e1gina a p\u00e1gina el contenido de un fichero llamado\u00a0<em>HOWTOUSE<\/em>\u00a0con informaci\u00f3n sobre el uso del programa cdda2wav situado en el directorio\u00a0<em>\/usr\/share\/doc\/cdda2wav<\/em>, podemos hacer lo siguiente:<\/p>\n<pre>more \/usr\/share\/doc\/zip-3.0\/README<\/pre>\n<p>El comando visualiza el contenido del fichero pero deteni\u00e9ndose cuando el texto ocupa toda la p\u00e1gina e indicando con un texto en la parte inferior el porcentaje del total que se ha mostrado hasta el momento. Pulsando la barra espaciadora podemos ir viendo el resto de p\u00e1ginas y pulsando la tecla &#8216;q&#8217; finalizar la visualizaci\u00f3n.<\/p>\n<p>Aunque el comando\u00a0<em>more<\/em>\u00a0parece adecuado para el problema que planteamos antes, la cuesti\u00f3n es \u00bfc\u00f3mo lo aplicamos al resultado de visualizar el contenido de un directorio con <em>ls<\/em> si necesita que le proporcionemos un fichero como argumento? La soluci\u00f3n consiste en encadenar la salida del comando\u00a0<em>ls<\/em>\u00a0y usarla como entrada para el comando\u00a0<em>more<\/em>\u00a0a trav\u00e9s de una \u00abtuber\u00eda\u00bb. Para ello utilizaremos el s\u00edmbolo &#8216;|&#8217; de la siguiente forma:<\/p>\n<pre>ls \/usr\/bin | more<\/pre>\n<p>Como resultado, obtenemos la salida que proporciona\u00a0<em>ls<\/em>\u00a0pero dividida en p\u00e1ginas.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">Con el comando <em>less<\/em> puedes hacer lo mismo que con more, pero con la ventaja de que puedes avanzar y retroceder en el archivo. Prueba a repetir los ejemplos aqu\u00ed usados, cambiando more por less.<\/span><\/p>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Quiz\u00e1s la utilidad m\u00e1s potente de la entrada\/salida est\u00e1ndar es la posibilidad de encadenar comandos a trav\u00e9s del uso de \u00abtuber\u00edas\u00bb (pipes), que permiten que la salida de un comando sirva como entrada a otro. Por ejemplo, si queremos ver el contenido del directorio \/usr\/bin podemos utilizar el comando\u00a0ls\u00a0como sigue: ls \/usr\/bin El problema es &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/tuberias-pipes\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abTuber\u00edas (pipes)\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-67","post","type-post","status-publish","format-standard","hentry","category-gnulinux","entry"],"_links":{"self":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/67","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/comments?post=67"}],"version-history":[{"count":3,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/67\/revisions"}],"predecessor-version":[{"id":71,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/67\/revisions\/71"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/media?parent=67"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/categories?post=67"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/tags?post=67"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}