sh - 移动 ttf 文件会导致额外的扩展名
问题描述
我在压缩后重命名我的文件,以便正确进行协商。使用的命令之一是
find dist -name "*.ttf" -type f -print -exec sh -c 'f="{}"; mv -- "$f" "${f%.ttf}.ttf.ttf"' \;
相同的命令对于 html、css、svg 等扩展名非常有效,并且会生成具有预期的双扩展名的文件。例如 - <>.html.html
但是,上面的命令导致 .ttf.ttf.ttf
我将它作为 gitlab CI 的一部分运行,它会生成一个新的构建。因此,没有冲突的可能性,因为它完全从一个空文件夹开始。这样做是为了为静态站点提供压缩文件。服务器是 Apache,我在 httpd.conf 或 .htaccess 中找不到任何可能额外重命名文件的内容。
预期输出 - *.ttf 文件应重命名为 *.ttf.ttf
解决方案
为避免竞争条件和其他特定于实现的障碍,请分两步执行此操作。首先,用“标记”重命名每个文件:
find dist -name "*.ttf" -type f -print -exec sh -c 'mv -- "$1" "${1%.ttf}.ttf.foo"' _ {} \;
然后用适当的扩展名替换“标记”:
find dist -name "*.foo" -type f -print -exec sh -c 'mv -- "$1" "${1%.foo}.ttf"' _ {} \;
这保证了find
不能创建与它正在处理的扩展名相同的文件。
推荐阅读
- django - Django 和 DataTables 在初始 10 个结果后忽略读取、编辑、删除按钮
- python - 我试图创建一个琐事游戏。我正在寻找的输出有问题
- python - 将包含元组列表的列拆分为新列 pandas
- android-camera2 - 长曝光相机 - 软件方法
- java - 实现分页的Java流使用
- git - 切换分支,目前卡在“分离的 HEAD 状态”+ 中间恢复
- html - 删除下划线
- 元素
- python - numpy 方差与本土方差(不同的结果)
- mosel - 我将 d 定义为二进制变量,但解是 xpress mosel 中 0 和 1 之间的连续变量
- arrays - 将常数与数组的每个元素相乘