通過 Ubuntu 命令行將文件名轉換為小寫

在使用 Linux 時,您可能會遇到一些僅使用小寫文件名的實用程序和應用程序。 我們通常不會以這種格式保存文件,因此可能需要尋找一種解決方法,將文件夾中的所有文件名遞歸轉換為小寫。 在本文中,我們將向您展示兩種將給定路徑中的所有文件和文件夾名稱轉換為小寫的方法,只需通過命令行即可。

我們已經在 Ubuntu 18.04 LTS 系統上運行了本文中提到的命令和過程。

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

$查找 [directory_name] -深度

我將用作本文示例的我的下載文件夾包含所有以大寫字母開頭的文件,並且在名稱之間還包含一些文件。

$ 查找下載-深度

方法一:使用rename命令

在這種方法中,我們將使用 Ubuntu find、Xargs 和 rename 命令來遞歸地重命名給定目錄中的所有文件/文件夾。

通過應用程序啟動器搜索或 Ctrl+Alt+T 快捷方式打開您的 Ubuntu 命令行終端。

這是您將使用的命令的語法:

$查找 [directory_name] -深度| xargs -n 1 重命名 -v ‘s/(.*)/([^/]*)/$1/L$2/’ {} ;

如果您的系統上沒有安裝 rename 命令,則在運行上述命令時可能會出現錯誤。 您可以通過以下 apt-get 命令將重命名安裝到您的 Ubuntu:

$ sudo apt-get install 重命名

我將使用以下命令將我的下載目錄中的文件名轉換為小寫:

$ find 下載-depth | xargs -n 1 重命名 -v ‘s/(.*)/([^/]*)/$1/L$2/’ {} ;

當我再次列出目錄的內容時,我能夠看到所有文件名都轉換為小寫,如下所示:

文件名列表

方法二:使用腳本重命名文件

在這種方法中,我們將使用一個 bash 使用 find 和 mv 命令遞歸重命名目錄的文件和文件夾名稱的腳本,包括目錄名稱本身。

打開終端應用程序並移動到 bin 文件夾,如下所示:

$ cd ~ bin

現在,在您最喜歡的文本編輯器之一中打開一個新的腳本文件。 我們將使用 nano 編輯器打開一個名為 lowercase_filenames.sh 的空腳本文件

$ sudo 納米小寫_文件名.sh

在該空文件中,添加以下腳本。

#!/bin/bash
#打印用法如果 [ -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}; # 為文件和目錄設置小寫的新名稱 new_name=”$(dirname “${name}”)/$(basename “${name}” | tr ‘[A-Z]’ ‘[a-z]’)” #檢查新名稱是否已經存在 if [ “${name}” != “${new_name}” ]; 然後
[ ! -e “${new_name}” ] && mv -T “${name}” “${new_name}”; echo “${name} 被重命名為 ${new_name}” || echo “${name} 沒有被重命名!” fi完成退出0

小費: 而不是將整個腳本輸入您 bash 文件,您可以從這裡複製它並使用 Ctrl+Shift+V 粘貼到終端中,或者使用右鍵單擊菜單中的粘貼選項。

這是您的文件的樣子:

文件小寫重命名腳本

現在,通過 Ctrl+X 快捷方式退出文件並將文件保存在“Save 修改緩衝區?” 通過鍵入 Y 然後按 Enter 進行提示。

為了使該文件成為可執行腳本,請在終端中運行以下命令:

$ sudo chmod +x 小寫_文件名.sh

現在您已準備好在您的任何文件夾上使用該腳本。

當我在我的下載文件夾上運行腳本時,我看到所有文件和子文件夾名稱都轉換為小寫,如下所示:

運行腳本將文件名轉換為小寫

因此,您可以通過兩種方式將文件名重命名為所有小寫字母,以便您使用的應用程序不會無法識別任何大寫的文件名。