[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
es:howtos:general_admin:cli_constructs_and_useful_info [2019/02/07 15:26 (UTC)] – [Construcciones de CLI e información útil] slackwarespanoles:howtos:general_admin:cli_constructs_and_useful_info [2019/02/07 19:26 (UTC)] – [Cita] slackwarespanol
Línea 1: Línea 1:
 <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). -->
 <note warning>En proceso de traducción. Victor</note> <note warning>En proceso de traducción. Victor</note>
-====== Construcciones de CLI e información útil ======+====== Construcciones de CLI (Interfaz de línea de comandos) e información útil ======
 El propósito de este artículo no es ser un tutorial de CLI, sino más bien ser una exposición de construcciones comunes utilizadas en shell scripting para lograr un objetivo de manera eficiente. También hay secciones que simplemente ayudan a entender un tema determinado. El propósito de este artículo no es ser un tutorial de CLI, sino más bien ser una exposición de construcciones comunes utilizadas en shell scripting para lograr un objetivo de manera eficiente. También hay secciones que simplemente ayudan a entender un tema determinado.
-==== Constructs ====+==== Construye ====
 === rev | cut | rev === === rev | cut | rev ===
-It is often useful to reverse a string and then use cut. For exampletake a Slackware package and get its name:+A menudo es útil revertir una cadena y luego usar cut. Por ejemplotome un paquete Slackware y obtenga su nombre:
 <code bash> <code bash>
 echo dejavu-fonts-ttf-2.33-noarch-1 | rev | cut -d - -f 1-3 --complement | rev echo dejavu-fonts-ttf-2.33-noarch-1 | rev | cut -d - -f 1-3 --complement | rev
 ls -1 /var/log/packages | rev | cut -d - -f 1-3 --complement | rev ls -1 /var/log/packages | rev | cut -d - -f 1-3 --complement | rev
 </code> </code>
-Or if you wanted to get the full path of a fileminus the suffix.+O si desea obtener la ruta completa de un archivomenos el sufijo.
 <code bash> <code bash>
 echo /proc/config.gz | rev | cut -d. -f1 --complement | rev echo /proc/config.gz | rev | cut -d. -f1 --complement | rev
 </code> </code>
-=== replace a suffix === +=== Reemplazar un sufijo === 
-Say you wanted to make a video conversion script, and you needed to change the suffix.+Digamos que querías hacer un script de conversión de video y que necesitabas cambiar el sufijo.
 <code bash> <code bash>
 input=test.mkv input=test.mkv
Línea 21: Línea 21:
 </code> </code>
 === find | xargs === === find | xargs ===
-This is a special interaction between find and xargs that allows one to deal with spaces in file namesIt is very fast because many commands like ''rm'', ''rmdir'', and ''shred'' take multiple file inputs on the command lineA generic construct is something like:+Esta es una interacción especial entre find xargs que permite tratar espacios en los nombres de archivosEs muy rápido porque muchos comandos como '' rm '', '' rmdir '' '' shred '' toman múltiples entradas de archivos en la línea de comandosUna construcción genérica es algo como:
 <code bash> <code bash>
 find . -type f -print0 | xargs -0 "$command" find . -type f -print0 | xargs -0 "$command"
 </code> </code>
-You can replace ''$command'' with whatever command you need to run on the files as long as it supports multiple file inputIf you have a list of files you can still preserve spaces:+Puede reemplazar '' $ command '' con cualquier comando que necesite para ejecutar en los archivos siempre que sea compatible con la entrada de múltiples archivosSi tiene una lista de archivos, aún puede conservar espacios:
 <code bash> <code bash>
 tr '\n' '\0' < "$file" | xargs -0 "$command" tr '\n' '\0' < "$file" | xargs -0 "$command"
 </code> </code>
-=== comm before and after === +=== comm antes y después === 
-This construct is useful for package management applicationsFrom the comm man page:+Esta construcción es útil para aplicaciones de gestión de paquetesDesde la página de manual de comm:
 <code> <code>
 With  no  options,  produce  three-column  output. With  no  options,  produce  three-column  output.
Línea 37: Línea 37:
 column three contains lines common to both files. column three contains lines common to both files.
 </code> </code>
-The options ''-1'' ''-2'' ''-3'' suppress the respective columnsSay you wanted to log files that were added to ''/usr'' after running command ''$1'':+Las opciones '' '-1' '' '' '-2' '' '' '-3''' suprimen las columnas respectivasSupongamos que desea registrar los archivos que se agregaron a '' /usr'' después de ejecutar el comando '' $ 1 '':
 <code bash> <code bash>
 # before, make install, after # before, make install, after
Línea 51: Línea 51:
 comm -13 "$tmp/before-sorted" "$tmp/after-sorted" > "$log/$name" comm -13 "$tmp/before-sorted" "$tmp/after-sorted" > "$log/$name"
 </code> </code>
-Note that comm requires sorted filesHere ''-1'' suppresses lines unique to before, ''-3'' suppresses lines present in both filesso you are left with column which contains files unique to after i.e. the files added. Many people would like to use diff to compare filesbut it's mostly for creating patches.+ 
 +Tenga en cuenta que comm requiere archivos ordenadosAquí '' -1 '' suprime las líneas exclusivas de antes, '' -3 '' suprime las líneas presentes en ambos archivospor lo que queda con la columna que contiene archivos exclusivos después de los archivos agregadosA muchas personas les gustaría usar diff para comparar archivospero es principalmente para crear parches. 
 === while read line === === while read line ===
-This construct is common and is useful for reading files or stdin one line at timeHere is an example that can be used to concatenate split files in order:+Esta construcción es común y es útil para leer archivos o ingresar una línea la vezAquí hay un ejemplo que se puede usar para concatenar archivos divididos en orden:
 <code bash> <code bash>
 base="$(echo "$@" | rev | cut -d. -f1 --complement | rev)" base="$(echo "$@" | rev | cut -d. -f1 --complement | rev)"
Línea 62: Línea 64:
 done done
 </code> </code>
-Also note that ''sort -V'' is a version sort and is useful in cases where ''ls'' sorts suffixes incorrectlyThe usual way to prevent this is to name numbered suffixes with ''0'' padding like ''file.001'', but it may overflow and this is why ''sort -V'' is useful.+También tenga en cuenta que '' sort -V '' es una clasificación de versión y es útil en los casos en que '' ls '' ordena los sufijos de forma incorrectaLa forma habitual de evitar esto es nombrar sufijos numerados con '' 0 '' como '' file.001 '', pero puede desbordarse y es por eso que '' sort -V '' es útil.
 === for i in === === for i in ===
-Here is an example for extracting all rpms in a directory:+Aquí hay un ejemplo para extraer todos los rpms en un directorio:
 <code bash> <code bash>
 for i in *.rpm for i in *.rpm
Línea 71: Línea 73:
 done done
 </code> </code>
-You can also use ''seq'' to make ''i'' a loop counter:+También puede usar '' seq '' para hacer que '' i '' sea un contador de bucle:
 <code bash> <code bash>
 for i in $(seq 1 100) for i in $(seq 1 100)
Línea 78: Línea 80:
 done done
 </code> </code>
-Note that there are no quotes around ''$(seq)'' because otherwise it would quote the entire expanded number sequence and that wouldn't work right+Tenga en cuenta que no hay comillas alrededor de '' $ (seq) '' porque de lo contrario, citaría la secuencia numérica completa y eso no funcionaría bien
-== External Links === +== Enlaces externos === 
-  * http://www.commandlinefu.com/commands/browse +   * http://www.commandlinefu.com/commands/browse 
-==== Quoting ==== +==== Comilla ==== Las comillas pueden parecer complicadasy las razones de ello son oscuraspero tiene un propósito y no es tan complicado. === comillas doble === La razón para la comilla doble es para preservar espacioscomo espacios en nombres de archivosLa doble cita de una variable o una sustitución de comando lo convierte en un solo argumentoUn ejemplo:
-Quoting may seem complicatedand reasons for it obscurebut there is a purpose to it and it is not that complicated +
-=== Double quoting === +
-The reason for double quoting is to preserve spaceslike spaces in file namesDouble quoting a variable or command substitution makes it into a single argumentAn example:+
 <code bash> <code bash>
 bash-4.2$ ls bash-4.2$ ls
 es:howtos:general_admin:cli_constructs_and_useful_info ()