也许有人有工具脚本(perl或shell脚本)重命名文件名称或目录名称?
例如
该工具需要从文件读取如下:
more file /var Local exportlocal /etc data Data
第一个字段$ 1 – 在此目录下search的目录名称
第二个字段 – 需要search的文件/目录的名称
第三个字段 – 需要重命名的新文件/目录的名称
真实的例子(在运行该工具之前)
/var/tmp/Local
真实的例子(在我们运行该工具之后)
/var/tmp/exportlocal
假定文件是空格分隔的(字段和换行符之间的制表符和/或空格结束每个logging),并且文件和目录名称不包含这些字符:
#!/bin/sh while read -r branch oldname newname do find "$branch" -depth -name "$oldname" -exec sh -c 'mv "$1" "${1%/*}/$2"' _ {} "$newname" \; done < file-with-names
编辑:
按如下所示更改find命令,为每个重命名的文件输出一条消息:
find "$branch" -depth -name "$oldname" -exec sh -c 'mv "$1" "${1%/*}/$2"; echo "$1 was renamed to $2 under $3"' _ {} "$newname" "$branch" \;