Сравнение временных отметок Bash - PullRequest
1 голос
/ 10 августа 2009

Я совершенно новичок в скриптах Bash, но мне сказали, с небольшой помощью, создать файл, который сжимает текстуры в формат PVR, только если файл был изменен с момента последнего запуска скрипта. Вот код, который у меня есть:


# variables
TEXTURE_TOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/texturetool
INPUT_DIR="/Data/Mobile"
OUTPUT_DIR="/Data/iPhone"
IMAGE_GREP="\(.bmp\|.png\)"
OTHER_GREP="\.b3d$"

echo "Starting backup of directory $INPUT_DIR to directory $OUTPUT_DIR"

# cycle through the input directory for images we can compress
echo "Compressing textures!"
for i in $( ls -a "$INPUT_DIR" | grep $IMAGE_GREP  ); 
     do
        if test "$OUTPUT_DIR/$i.pvr" -nt "$INPUT_DIR/$i"; then
        # check to see output's status
        echo "Compressing file $i!"

        # compress and store in output directory
        $TEXTURE_TOOL -m -e PVRTC --bits-per-pixel-2 -o "$OUTPUT_DIR/$i.pvr" -f PVR "$INPUT_DIR/$i"
        fi
     done

# cycle through the input directory for models we can export
echo "Moving models!"
for i in $( ls -a "$INPUT_DIR" | grep $OTHER_GREP  ); 
     do
        # check to see output's status
        echo "Moving model file $i!"

        # cp to output directory
        cp "$INPUT_DIR/$i" "$OUTPUT_DIR/$i"
     done

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

Может кто-нибудь подсказать, что я делаю не так

Спасибо, Майкл A

Ответы [ 2 ]

4 голосов
/ 10 августа 2009

Делать вещи, только если некоторые файлы новее, чем ожидалось, лучше всего достигается с помощью make. Это немного сложнее в изучении, но очень эффективно.

3 голосов
/ 10 августа 2009
test "$OUTPUT_DIR/$i.pvr" -nt "$INPUT_DIR/$i";

Проверяет, является ли $ OUTPUTDIR / $ i.pvr новее, чем $ INPUTDIR / $ i, думаю, вы хотите сделать это наоборот.

test "$INPUT_DIR/$i" -nt "$OUTPUT_DIR/$i.pvr";

Чтобы проверить, чтобы увидеть, что вход более новый, чем выход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...