{"id":9154,"date":"2020-05-21T08:52:30","date_gmt":"2020-05-21T06:52:30","guid":{"rendered":"https:\/\/www.giusseppe.net\/blog\/?p=9154"},"modified":"2020-05-19T17:53:07","modified_gmt":"2020-05-19T15:53:07","slug":"un-comando-utilisimo-de-linux","status":"publish","type":"post","link":"https:\/\/www.giusseppe.net\/blog\/archivo\/2020\/05\/21\/un-comando-utilisimo-de-linux\/","title":{"rendered":"Un comando util\u00edsimo de Linux"},"content":{"rendered":"<p>Es una maravilla la de cosas que se pueden hacer desde l\u00ednea de comandos de linux (unix, en general), as\u00ed que pongo por ejemplo este peque\u00f1o portento para modificar el tama\u00f1o de todas las im\u00e1genes encontradas (podr\u00eda hacer una b\u00fasqueda m\u00e1s restrictiva, solo bas\u00e1ndome en la extensi\u00f3n de los archivos) y adaptarlas a las dimensiones que desee:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">find . -type f -size +1000k -exec mogrify -resize 25% {} \\;<\/pre>\n<p><strong>Este comando busca los archivos mayores de 1000K (cerca de un megabyte) y reduce su tama\u00f1o (como imagen) en un 25%<\/strong> porcentualmente, lo que puede ser una reducci\u00f3n enorme de recursos para una librer\u00eda de fotograf\u00edas que se deseen usar en una web, que es para lo que lo estoy usando, de manera que las im\u00e1genes que sincronizo en mi base de datos de im\u00e1genes no sean desmesuradamente grandes para su posterior descarga y gesti\u00f3n o visualizaci\u00f3n por parte de <a href=\"https:\/\/www.giusseppe.net\/blog\/archivo\/2020\/05\/07\/actualizado-el-theme-del-blog\/\">Piwigo<\/a><\/p>\n<p>Una herramienta tan poderosa como para eliminar o modificar espacios de nombres de archivos, o caracteres no admitidos, como nuestra bienamada \u00f1, o las acentuaciones, o todas las may\u00fasculas por min\u00fasculas&#8230;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">find . -name '* *' -exec rename 's\/ \/_\/g' {} \\;<\/pre>\n<p><strong>Este comando busca archivos o carpetas (no est\u00e1 especificado el type) que contengan espacios en su nombre (podr\u00eda haberse buscado otra cosa) y se sustituye por guiones bajos<\/strong> con <a href=\"https:\/\/linuxize.com\/post\/how-to-rename-files-in-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\">el comando rename<\/a>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">find . -depth -exec rename -n y\/A-Z\/a-z\/ {} \\;<\/pre>\n<p><strong>Cambiamos todas las may\u00fasculas por min\u00fasculas<\/strong>, tanto en archivos como en carpetas. (<em>Quitando el \u00ab-n\u00bb, lo efectuar\u00e1, de lo contrario, muestra lo que har\u00eda, pero no lo hace<\/em>)<\/p>\n<p>Tambi\u00e9n me permitir\u00eda cambiar las \u00f1 o \u00d1 por caracteres de mi elecci\u00f3n, pero eso es mejor hacerlo con cuidado, porque sustituir por \u00abn\u00bb o \u00abN\u00bb puede borrar otro archivo&#8230; as\u00ed que es preferible, primero, saber d\u00f3nde est\u00e1n esos archivos con un comando que los busque como este:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">find . -name \"*[\u00f1|\u00d1]*\" -print<\/pre>\n<p>&nbsp;<\/p>\n<p>Otras opciones incre\u00edbles del programa <a href=\"https:\/\/lignux.com\/usamos-mogrify-para-cambiar-el-tamano-y-el-formato-de-las-imagenes-y-mucho-mas\/\" target=\"_blank\" rel=\"noopener noreferrer\">mogrify<\/a> incluyen la rotaci\u00f3n arbitraria de bloque de im\u00e1genes, o la reducci\u00f3n absoluta a, por ejemplo, 1024 de ancho forzoso con el atributo \u00abresize 1024\u00bb.<\/p>\n<p><code>mogrify -resize 1024 *.jpg<br \/>\nmogrify -rotate \"-90\" *.jpg<\/code><\/p>\n<p>Despu\u00e9s de pasar la ma\u00f1ana del martes compleja y parte de la tarde con esto para modificar algunos cientos o miles de archivos, <a href=\"http:\/\/sabina.pntic.mec.es\/lmuf0005\/permisos.html\" target=\"_blank\" rel=\"noopener noreferrer\">me encuentro esta joya del 2005 que contiene unos cuantos scripts<\/a> mucho mejor documentados y programados de lo que yo hubiera hecho y con una sencillez tremenda para modificarlos y adaptarlos a lo que necesite.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es una maravilla la de cosas que se pueden hacer desde l\u00ednea de comandos de linux (unix, en general), as\u00ed que pongo por ejemplo este peque\u00f1o portento para modificar el tama\u00f1o de todas las im\u00e1genes encontradas (podr\u00eda hacer una b\u00fasqueda m\u00e1s restrictiva, solo bas\u00e1ndome en la extensi\u00f3n de los archivos) y adaptarlas a las dimensiones &#8230; <a title=\"Un comando util\u00edsimo de Linux\" class=\"read-more\" href=\"https:\/\/www.giusseppe.net\/blog\/archivo\/2020\/05\/21\/un-comando-utilisimo-de-linux\/\">Read more<span class=\"screen-reader-text\">Un comando util\u00edsimo de Linux<\/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":[14,110],"tags":[76,74],"class_list":["post-9154","post","type-post","status-publish","format-standard","hentry","category-opinion","category-tecnologia-opinion","tag-informatica","tag-linux"],"_links":{"self":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts\/9154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/comments?post=9154"}],"version-history":[{"count":8,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts\/9154\/revisions"}],"predecessor-version":[{"id":9166,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts\/9154\/revisions\/9166"}],"wp:attachment":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/media?parent=9154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/categories?post=9154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/tags?post=9154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}