如何在Linux上将所有文件夹和文件重命名为小写?

住过:

我必须递归重命名完整的文件夹树,以便任何地方都没有大写字母(这是C ++源代码,但这没关系)。

忽略CVS和Subversion版本控制文件/文件夹的加分点。首选方法是shell脚本,因为shell应该在任何Linux机器上都可用。

关于文件重命名的细节,有一些有效的论据。

  1. 我认为具有相同小写字母名称的文件应被覆盖;这是用户的问题。在忽略大小写的文件系统上签出时,它也会用后者覆盖第一个文件系统。

  2. 我会考虑AZ字符并将其转换为az,其他所有内容都只是在引起问题(至少在源代码中)。

  3. 在Linux系统上运行构建将需要该脚本,因此我认为应省略对CVS或Subversion版本控制文件的更改。毕竟,这只是从头开始。也许“出口”更合适。

亚历克斯·B:

使用以下"rename"命令的简明版本

find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

这避免了问题的目录文件之前,重命名,并试图将文件移动到非现有目录(如"A/A""a/a")。

或者,更详细的版本而不使用"rename"

for SRC in `find my_root_dir -depth`
do
    DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'`
    if [ "${SRC}" != "${DST}" ]
    then
        [ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" || echo "${SRC} was not renamed"
    fi
done

聚苯乙烯

后者使move命令(例如"svn mv"具有更大的灵活性

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Linux上将一组文件重命名为001、002 ...

如何在Linux中递归重命名文件夹

如何将所有文件重命名为小写?

PHP:以递归方式将目录中的所有文件重命名为小写

使用php语言重命名所有文件和文件夹ftp

如何将colab我的云端硬盘文件夹重命名为其他名称?

如何将特定文件重命名为许多文件夹的文件夹名称

使用powershell将多个文件夹重命名为大写而不是文件

如何批量将文件重命名为文件夹名称+递增编号?我收到名称重复错误

使用Powershell将目录中的所有文件夹重命名为单个数字或字符

将文件名从大写重命名为小写

git mv重命名所有文件和文件夹以大写首字母

如何在终端上将所有目录中的文件重命名为相同的名称

如何遍历子文件夹并重命名为父文件夹-文件夹-文件号

将所有特定类型的文件重命名为小写批处理

php文件重命名和文件夹重命名

Windows CMD-如何将所有子文件夹中的所有文件重命名为父文件夹名称

从终端递归将所有文件和文件夹重命名为Title Case

递归搜索,将jpg文件复制并重命名为父文件夹名称

将文件夹中的所有文件重命名为驼峰大小写,并在下划线处使用单独的单词

是否所有文件夹都命名为“核心”核心转储?

如何在PHP中将文件夹命名为用户的IP地址

如何在Powershell中复制文件夹并将其重命名为当前日期和时间?

在Windows上将所有Git分支名称重命名为小写(GitHub远程)

如何将文件夹内的文件重命名为其对应的md5sum?

将所有文件和目录重命名为小写(包括 unicode)的脚本

如何在 Windows 中使用命令提示符将我的文件夹及其任何子文件夹重命名为小写?

重命名所有子目录中的文件和文件夹以删除字符

将文件夹中的文件重命名为一个名称