如何将 svn 中保存为文本/ascii 的图像批量转换为二进制?

发布于 2024-10-06 11:03:15 字数 466 浏览 2 评论 0原文

不知何故,图像被保存为 text/ascii,我需要递归地对数百个图像目录执行此操作,所有这些目录都在一个根 images 目录下。

我收到了一些说明 这里告诉我:

svn proplist <yourfile>
svn propdel svn:eol-style <yourfile>
svn propset svn:mime-type application/octet-stream <yourfile>

是否有一些本地 svn 递归方法可以做到这一点?如果没有,有人可以建议我如何使用 bash 脚本递归地应用它吗?

Somehow images got saved as text/ascii and I need to recursively do this for hundreds of directories of images, all under one root images directory.

I got some instructions here which tell me to:

svn proplist <yourfile>
svn propdel svn:eol-style <yourfile>
svn propset svn:mime-type application/octet-stream <yourfile>

Is there some native svn recursive way I can do this? If not, could someone advise how I could recursively apply this with a bash script?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

白云不回头 2024-10-13 11:03:15

外壳上:

find -name '*.png' -exec \
sh -c "svn propdel svn:eol-style {} && svn propset svn:mime-type image/png {}" \;

On the shell:

find -name '*.png' -exec \
sh -c "svn propdel svn:eol-style {} && svn propset svn:mime-type image/png {}" \;
影子是时光的心 2024-10-13 11:03:15

我没有可以测试这一点的 Subversion 存储库,但这应该不会太困难:

find . -name .svn -prune -o print

这将列出工作目录中的所有文件(不包括 .svn 目录)。

现在,您可以将其与 while read 循环结合起来。

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 并让 'er rip。

I don't have a Subversion repository where I can test this out, but it shouldn't be too difficult:

find . -name .svn -prune -o print

This will list all of the files in your working directory (sans the .svn directories).

Now, you can combine this with a while read loop

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

Now, you notice I'm not verifying whether or not the files have that property set or not. I simply don't care. And, this will do every file. If you want only to do a particular type of file, you'll have to modify the find command:

find . -name .svn -prune -o -name "*.jpg" print

I highly suggest you start with a clean Subversion working directory, and run a test like this:

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

If the output of that looks good, then remove the echo and let 'er rip.

南薇 2024-10-13 11:03:15

以下 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
};

The following powershell code will achieve what you're looking to do:

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
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文