2015-06-10 2 views
0

Найден wonderful little bash script что я adapted использовать для сжатия почтового индекса удалось каталогов, игнорируя файлы, такие как bower_components, .git и node_modules:Zip с игнорировать в Баш скрипт

#!/bin/bash 
# This script zips a directory, excluding specified files, types and subdirectories. 
# while zipping the directory it excludes hidden directories and certain file types 

[[ "`/usr/bin/tty`" == "not a tty" ]] && . ~/.bash_profile 

DIRECTORY=$(cd `dirname $0` && pwd) 

if [[ -z $1 ]]; then 
    echo "Usage: managed_directory_compressor /your-directory/ zip-file-name" 
else 
    DIRECTORY_TO_COMPRESS=$1 
    ZIPPED_FILE="$2.zip" 
    COMPRESS_IGNORE_DIR=("\.git" "node_modules" "bower_components") 

    IGNORE_LIST=("*/\.*" "\.* "\/\.*"") 
    if [[ -n $COMPRESS_IGNORE_DIR ]]; then 
     for IGNORE_DIR in "${COMPRESS_IGNORE_DIR[@]}"; do 
      IGNORE_LIST+=("$DIRECTORY_TO_COMPRESS/$IGNORE_DIR/***") ## "$DIRECTORY_TO_COMPRESS/$IGNORE_DIR/*" perhaps is enough? 
     done 
    fi 

    zip -r "$ZIPPED_FILE" "$DIRECTORY_TO_COMPRESS" -x "${IGNORE_LIST[@]}" # >/dev/null 
    echo zip -r "$ZIPPED_FILE" "$DIRECTORY_TO_COMPRESS" -x "${IGNORE_LIST[@]}" # >/dev/null 
    echo "Done" 
fi 

Единственная проблема заключается в том, что каталоги Я хочу игнорировать, все еще создаются, просто пустые.

Любые предложения?

ответ

1

почтовый индекс человек страниц говорит

Обратите внимание, что в настоящее время тянущийся/требуется для каталогов (как в

zip -r foo . -i dir/ 

включить каталог реж).

Таким образом, также исключение, кажется, работает: Замена отмеченную строку в скрипте по

IGNORE_LIST+=("$DIRECTORY_TO_COMPRESS/$IGNORE_DIR/") 

должен сделать трюк.

(мой zip - версия 3.0 на Ubuntu-Linux)

Смежные вопросы