Skip to content

Instantly share code, notes, and snippets.

@neverkas
Created January 30, 2023 15:34
Show Gist options
  • Save neverkas/d735c375233b2cc29e130752a9858505 to your computer and use it in GitHub Desktop.
Save neverkas/d735c375233b2cc29e130752a9858505 to your computer and use it in GitHub Desktop.
Comprimir/Extraer multiples archivos (libros) de un directorio
#directorios = $(sort $(dir $(wildcard ./*/.)))
libros = $(wildcard *.pdf)
archivos= $(wildcard *.tar.gz)
libros_comprimidos = $(patsubst %.pdf, %.tar.gz, $(libros))
archivos_descomprimidos = $(patsubst %.tar.gz, %.pdf, $(archivos))
# TODO: esto no funcionaría..
#archivos:=$(foreach libro, $(libros), $(libro).tar.gz)
# TODO: funciona, pero genera una dependencia circular..
%.tar.gz: %.pdf
@echo Comprimiendo $< ..
tar -cvzf $@ $<
# tar -cvzf $*.tar.gz $*.pdf
# TODO: funciona, pero genera una dependencia circular..
%.pdf: %.tar.gz
@echo Extrayendo $< $*.
tar -xvf $<
# tar -xvf $*.tar.gz
comprimir-archivos: $(libros_comprimidos)
extraer-archivos: $(archivos_descomprimidos)
# TODO: no soluciona la dependencia circular, por eso comentamos el $* de los targets de arriba
#extraer: $(archivos:.pdf=.tar.gz)
#comprimir: $(libros:.tar.gz=.pdf)
formatear-archivos:
rename -f 'tr/ A-Z/-a-z/' -- *.pdf && \
rename 's/[^a-zA-Z0-9_.-]//g' *.pdf
clean-pdf-files:
rm -vf *.pdf
clean-tar-files:
rm -vf *.tar.gz
.PHONY: formatear-archivos comprimir-archivos extraer-archivos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment