Проверка зависимостей изменения файла сценария Bash - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь выполнить простую проверку в скрипте сборки bash, чтобы проверить, является ли XML-файл встроенного файла более новым, чем XML-файлы компонента в каталоге.

Так что в основном у меня есть каталог src / с10 файлов XML и файл final.xml, созданный из этих файлов.

Какой простой способ проверить время изменения файла final.xml, чтобы убедиться, что он старше, чем файлы в src /.

Что-то похожее на ANT

    <uptodate property="xml.build.notRequired" targetfile="${final.xml}">
        <srcfiles dir="${src.dir}" includes="**/*.xml" />
    </uptodate>

Или базовую функциональность файла Make (но я лучше просто сделаю это в скрипте, чем добавлю Make / ANT в качестве зависимости).

Ответы [ 2 ]

5 голосов
/ 17 июня 2011
find src -type f | while read filename; do
    if [ "$filename" -nt "final.xml" ]; then
        echo "Oh noes, final.xml is out of date..."
    fi
done
0 голосов
/ 17 июня 2011
find src -newer src/final.xml -print

напечатает все файлы, которые являются «более новыми», как final.xml

или

n=$(find src -newer src/final.xml | grep -c '.') && echo Here is $n newer files

будет делать echo только тогда, когда есть ЛЮБОЙ более новый файл, в противном случаеэхо не будет выполнено

...