美文网首页
Linux 将所有文件和目录名重命名为小写

Linux 将所有文件和目录名重命名为小写

作者: 数据科学工厂 | 来源:发表于2025-02-22 13:48 被阅读0次

引言

在我们之前的文章里,我们已经讲过怎么去数一个目录里文件和子目录的总数。这篇指南会教你在 Linux 系统里,把所有文件和目录的名字改成小写字母。

做到这件事有好几种方法,我们会介绍其中两种最有效、最靠谱的办法。为了方便说明,我们用了一个叫 Files 的目录,它的结构是这样的:

# find Files -depth

1. 结合 find、xargs 和 rename 命令使用

rename 是一个简单好用的命令行工具,能在 Linux 上一次改名多个文件。你可以把它和 find 工具搭配起来,用下面的方法,把某个目录里所有的文件或子目录的名字改成小写:

$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/\\/\L$2/' {} \;

上面命令里用到的选项解释:

  • -depth – 先显示目录里的内容,再显示目录本身。
  • -n 1 – 告诉 xargs 从 find 的输出中,每次命令只处理一个参数。

在 Files 目录里把文件和子目录的名字改成小写后的示例输出。

还有一种替代方法,用 find 和 mv 命令写个脚本就能搞定,具体如下。

2. 用 Shell 脚本结合 find 和 mv 命令

首先得写一个脚本:

$ cd ~/bin
$ vi rename-files.sh

然后在下面添加代码。

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

保存并关闭文件,然后使脚本可执行并运行:

$ chmod +x rename-files.sh
$ rename-files.sh Files     #Specify Directory Name

总结

这篇指南里,教了你怎么在 Linux 里把所有文件和目录的名字改成小写。

动动您发财的小手点个赞吧!欢迎转发!

本文由mdnice多平台发布

相关文章

  • Linux系统使用注意

    Linux严格区分大小写 Linux 和Windows不同,Linux严格区分大小写的,包括文件名和目录名、命令、...

  • Linux学习笔记

    windows和linux的区别 linux严格区分大小写 linux所有东西都是以文件形式保存,包括硬件 Lin...

  • Linux基础01

    Linux和Windows的区别 1. Linux严格区分大小写 2. Linux中所有内容以文件形式保存,包括硬...

  • linux基本命令

    linux系统文件和目录是以单根的倒置数来组织。"/"表示根。大小写:linux中的文件和目录严格区分大小写。分割...

  • Linux基础命令

    Linux是严格区分大小写的,如果没有特别的说明,保持小写Linux所有的内容都是以文件形式保存,不靠扩展名区分文...

  • Linxu学习笔记(二)我和你的学习建议(* ̄︶ ̄)沉入B站学习

    三、给初学者建议 1、注意事项 *Linux严格区分大小写*Linux中所有内容以文件形式保存,包括硬件硬盘文件是...

  • linux基础2

    1、linux发行版的系统目录名称命令规则以及用途 在linux操作系统中,一切皆被抽象为文件,普通文件和目录文件...

  • 7. linux 重命名文件和文件夹

    linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B 例子:将...

  • 其他

    linux中文件区分大小写而windows中不区分,文件名采用小写或严格大小写

  • Linux系统的目录结构

    Linux系统目录结构的最顶端是"/",称为根目录。所有的目录、文件、设备都在"/"之下。 目录名目录结构/bin...

网友评论

      本文标题:Linux 将所有文件和目录名重命名为小写

      本文链接:https://www.haomeiwen.com/subject/eiovpjtx.html