BeyondLinuxFromScratch-ES-5.0

Page 42

Más Allá de Linux From Scratch chmod −−reference "${LINK}$COMP_SUF" "${FILE}$COMP_SUF" else # Mantiene este enlace como blando. rm −f "$FILE" && ln −s "${LINK}$COMP_SUF" "${FILE}$COMP_SUF" fi echo "Reenlazando $FILE" > $DEST_FD1 # En cambio, si tenemos un fichero plano. elif [ −f "$FILE" ]; then # Tiene en cuenta los enlaces duros: contruye la liste de ficheros enlazados # al que vamos a (des)comprimir. # NB. Esto no es óptimo pues el fichero será comprimido eventualmente # tantas vecese como enlaces duros tenga. Pero por ahora es la forma # mas segura. inode=`ls −li "$FILE" | awk '{print $1}'` HLINKS=`find . \! −name "$FILE" −inum $inode` if [ −n "$HLINKS" ]; then # ¡Tenemos enlaces duros! Los elimina ahora. for i in $HLINKS; do rm −f "$i"; done fi # Ahora tiene en cuanta los ficheros sin enlaces duros. # Los descomprimimos primero para comprimirlos mas tarde # con el nivel de compresión seleccionado... case "$FILE" in *.bz2) bunzip2 $FILE FILE=`basename "$FILE" .bz2` ;; *.gz) gunzip $FILE FILE=`basename "$FILE" .gz` ;; esac # Comprime el fichero con el nivel de compresión indicado, si es necesario. case $COMP_SUF in *bz2) bzip2 ${COMP_LVL} "$FILE" && chmod 644 "${FILE}${COMP_SUF}" echo "Comprimiendo $FILE" > $DEST_FD1 ;; *gz) gzip ${COMP_LVL} "$FILE" && chmod 644 "${FILE}${COMP_SUF}" echo "Comprimiendo $FILE" > $DEST_FD1 ;; *) echo "Sin comprimir: $FILE" > $DEST_FD1 ;; esac # Si el fichero tiene enlaces, los regenera (tanto duros como blandos) if [ −n "$HLINKS" ]; then for i in $HLINKS; do NEWFILE=`echo "$i" | sed s/\.gz$// | sed s/\.bz2$//` if [ "$LN_OPT" = "−S" ]; then # Hace este enlace duro uno blando. ln −s "${FILE}$COMP_SUF" "${NEWFILE}$COMP_SUF" else # Mantiene el enlace duro como tal. ln "${FILE}$COMP_SUF" "${NEWFILE}$COMP_SUF" fi chmod 644 "${NEWFILE}$COMP_SUF" # En realidad solo funciona con # enlaces duros. Inofensivo con done fi else # Hay un problema cuando no obtenemos un enlace o un fichero plano. # Obviamente, nunca deberíamos llegar aquí... :−( echo "Whaooo... \"${DIR}/${FILE}\" no es un enlace o un fichero plano. Compruebalo:" ls −l "${DIR}/${FILE}" exit 1 fi fi done # para FILE done # para DIR EOF chmod 755 /usr/bin/compressdoc

Ahora, como root, puedes ejecutar /usr/bin/compressdoc −−bz2 para comprimir todas las páginas de manual de tu sistema. También puedes ejecutar /usr/bin/compressdoc −−help para obtener una ayuda clara sobre lo que el guión puede hacer.

Compresión de las páginas de manual e info

41


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.