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

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

引言

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

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

# find Files -depth
AI 代码解读

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

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

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

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

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

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

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

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

首先得写一个脚本:

$ cd ~/bin
$ vi rename-files.sh
AI 代码解读

然后在下面添加代码。

#!/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
AI 代码解读

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

$ chmod +x rename-files.sh
$ rename-files.sh Files     #Specify Directory Name
AI 代码解读

总结

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

目录
打赏
0
3
3
1
332
分享
相关文章
|
3天前
|
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
45 19
|
18天前
|
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat > filename` 创建新文件,`cat >> filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
45 5
Linux 常用文件查看命令
Linux|Transfer.sh 轻松实现文件共享
Linux|Transfer.sh 轻松实现文件共享
36 2
Linux|Transfer.sh 轻松实现文件共享
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
87 34
linux怎么把文件传到docker里面
在现代应用开发中,Docker作为流行的虚拟化工具,广泛应用于微服务架构。文件传输到Docker容器是常见需求。常用方法包括:1) `docker cp`命令直接复制文件;2) 使用`-v`选项挂载宿主机目录,实现数据持久化和实时同步;3) 通过SCP/FTP协议传输文件;4) 在Dockerfile中构建镜像时添加文件。选择合适的方法并确保网络安全是关键。
128 1
|
1月前
|
Linux文件与目录的日常
目录的切换 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户名相同的文件夹,可以使用(”cd“)命令来切换目录; 进入下载目录(”cd home/a/下载“)这种从给目录开头的一长串路经”叫做绝对路径“; 进入图片目录(”cd .. /图片/“)".."代表当前路径的上级路径,相对于当前的目录而言的”叫做相对路径“,(”.“)代表当前路径; 如果,想快速切换,上一个所在目录可以(”cd - / cd..“); 如果,想快速切换,追原始的目录可以(”cd --“); 查看目录及文件
45 14
|
3月前
|
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
461 14
|
3月前
|
linux积累-core文件是干啥的
核心文件是Linux系统在程序崩溃时生成的重要调试文件,通过分析核心文件,开发者可以找到程序崩溃的原因并进行调试和修复。本文详细介绍了核心文件的生成、配置、查看和分析方法
258 6
|
1月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
99 24
Linux系统之whereis命令的基本使用
|
24天前
|
Linux od命令
本文详细介绍了Linux中的 `od`命令,包括其基本语法、常用选项和示例。通过这些内容,你可以灵活地使用 `od`命令查看文件内容,提高分析和调试效率。确保理解每一个选项和示例的实现细节,应用到实际工作中时能有效地处理各种文件查看需求。
53 19