Как я могу пересчитать изображения, сохраненные в виде текста / ASCII в SVN в двоичный?
-
09-10-2019 - |
Вопрос
Каким-то образом изображения сохранены как текст / ASCII, и мне нужно рекурсивно делать это за сотни каталогов изображений, все под одним корнем images
каталог.
У меня есть некоторые инструкции здесь которые говорят мне:
svn proplist <yourfile>
svn propdel svn:eol-style <yourfile>
svn propset svn:mime-type application/octet-stream <yourfile>
Есть ли какой-то родной SVN рекурсивный способ сделать это? Если нет, может ли кто-то посоветовать, как я могу рекурсивно применить это с помощью сценария Bash?
Решение
На оболочке:
find -name '*.png' -exec \
sh -c "svn propdel svn:eol-style {} && svn propset svn:mime-type image/png {}" \;
Другие советы
У меня нет репозитория Subversion, где я могу проверить это, но это не должно быть слишком сложно:
find . -name .svn -prune -o print
Это перечисляет все файлы в вашем рабочем каталоге (SANS .svn каталоги).
Теперь вы можете комбинировать это с A при чтении петли
find . -name .svn -prune -o print | while read file
do
svn propdel svn:eol-style $file
svn propset svn:mime-type application/octet-stream $file
done
Теперь вы замечаете, что я не проверял, есть ли файлы, которые имеют ли файлы, которые набор свойств или нет. Мне просто все равно. И это сделает каждый файл. Если вы хотите только сделать определенный тип файла, вам придется модифицировать find
команда:
find . -name .svn -prune -o -name "*.jpg" print
Я настоятельно рекомендую вам начать с чистого рабочего каталога Subversion и запустите тест, как это:
find . -name .svn -prune -o print | while read file
do
echo svn propdel svn:eol-style $file
echo svn propset svn:mime-type application/octet-stream $file
done
Если вывод этого выглядит хорошо, затем удалите echo
и давайте разорвать.
Следующий код PowerShell достигнет того, что вы хотите сделать:
foreach( $file in get-childitem -name -include *.png -exclude .svn -recurse) {
& svn propdel svn:eol-style $file;
& svn propset svn:mime-type image/png $file
};