通过 Ubuntu 命令行将文件名转换为小写通过 Ubuntu 命令行将文件名转换为小写通过 Ubuntu 命令行将文件名转换为小写通过 Ubuntu 命令行将文件名转换为小写
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

通过 Ubuntu 命令行将文件名转换为小写

在使用 Linux 时,您可能会遇到一些仅适用于小写文件名的实用程序和应用程序。我们通常不会以这种格式保存文件,可能必须寻找一种解决方法,以递归方式将文件夹中的所有文件名转换为小写。在本文中,我们将向您展示两种方法,只需通过命令行即可将给定路径中的所有文件和文件夹名称转换为小写。

我们已在 Ubuntu 18.04 LTS 系统上运行本文中提到的命令和过程。

以下是使用 find 命令列出文件夹内容的方法:

$find [目录名称] -深度

我将用作本文的示例的“下载”文件夹包含所有以大写字母开头的文件,并且还包含一些名称之间的文件。

find Downloads -depth

方法一:使用重命名命令

在此方法中,我们将使用 Ubuntu find、Xargs 和 rename 命令来递归地重命名给定目录中的所有文件/文件夹。

通过应用程序启动器搜索或 Ctrl+Alt+T 快捷方式打开 Ubuntu 命令行(终端)。

以下是您将使用的命令的语法:

$find [目录名称] -深度 | xargs -n 1 重命名 -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

如果您的系统上没有安装 rename 命令,则在运行上述命令时可能会出现错误。您可以通过以下 apt-get 命令将 rename 安装到您的 Ubuntu:

sudo apt-get install rename

我将使用以下命令将下载目录中的文件名转换为小写:

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

当我再次列出该目录的内容时,我可以看到所有文件名都转换为小写,如下所示:

方法2:使用脚本重命名文件

在此方法中,我们将利用 bash 脚本,该脚本使用 find 和 mv 命令来递归重命名目录的文件和文件夹名称,包括目录名称本身。

打开终端应用程序并移至 bin 文件夹,如下所示:

cd ~bin

现在,在您最喜欢的文本编辑器之一中打开一个新的脚本文件。我们将使用 nano 编辑器打开一个名为 lowercase_filenames.sh 的空脚本文件

sudo nano lowercase_filenames.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
exit 0

提示:您可以从此处复制它并使用 Ctrl+Shift+V 或使用右侧的“粘贴”选项将其粘贴到终端中,而不是将整个脚本输入到 bash 文件中 -单击菜单。

您的文件将如下所示:

现在,通过 Ctrl+X 快捷键退出文件并将文件保存在“保存修改的缓冲区?”中。 ” 提示输入 Y 然后按 Enter 键。

为了使该文件成为可执行脚本,请在终端中运行以下命令:

sudo chmod +x lowercase_filenames.sh

现在您可以在任何文件夹上使用该脚本了。

当我在下载文件夹上运行脚本时,我看到所有文件和子文件夹名称都转换为小写,如下所示:

因此,您可以通过这两种方法将文件名重命名为全部小写字母,以便您使用的应用程序不会无法识别任何大写文件名。

©2015-2025 艾丽卡 support@alaica.com