【发布时间】:2014-03-05 04:53:12
【问题描述】:
我已经使用该命令重命名多个目录中的文件并将 JPG 更改为 jpg,因此我具有一致性。
find . -name '*.jpg' -exec sh -c 'mv "$0" "${0%.JPG}$.jpg"' {} \;
您知道如何更改它以在文件名中包含文件夹名称
我在一个包含大约 2000 个文件夹 (SKU) 或产品的文件夹中执行该操作......每个 SKU 文件夹内都有 9 个图像。 1.jpg 2.jpg .... 9.jpg.
所以底线是我有 2000 张图片,名称分别为 1.jpg、2.jpg ... 9.jpg。我需要这些文件是唯一的,例如:
folder-name-1.jpg ... folder-name.2.jpg ... 以此类推,在每个文件夹中。
任何帮助将不胜感激。
【问题讨论】:
-
将
1.jpg重命名为folder-name-1.jpg并不能使其独一无二。您实际上是在尝试为所有文件名添加 prefix。 -
如果你自己创建了这个命令会很容易.. 停止使用来自网络的 sn-ps。这很危险
-
rename来自 Perl 发行版可能会有所帮助。 -
devnull - 文件夹名称实际上是产品的 SKU,所以它是唯一的。 hek2mgl - 我是 php 开发人员,linux 不是我的强项,我在本地测试了脚本,然后在服务器上执行。
-
@pzd060 这正是我所说的:使用给定字符串为文件名添加前缀不会使这些文件名唯一。