/

如何使用Shell腳本將所有檔名中的空格替換為底線

如何使用Shell腳本將所有檔名中的空格替換為底線

在處理網站時,我需要遞迴地將資料夾中所有的檔名中的空格替換為底線。這是我在網站上工作時需要進行的其中一個臨時操作,而我並不想要搜索、安裝(購買)一個應用程式來完成這個操作。

以下是我使用Fish Shell腳本完成這個操作的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/opt/homebrew/bin/fish

# 定義要搜索的目錄
set search\_dir ./

# 遞迴地搜索目錄中的所有檔案
find $search\_dir -type f | while read -l file
# 將檔案名稱中的空格替換為底線
set new\_name (echo $file | tr ' ' '\_')

# 重新命名檔案
mv $file $new\_name
end

我將這個腳本放在包含我想要重新命名的所有檔案和資料夾的目錄中,並將其命名為replace_spaces.fish

然後,我使用chmod +x replace_spaces.fish命令將其設置為可執行文件,最後使用./replace_spaces.fish命令運行它。

tags: [“Shell腳本”, “文件管理”, “命名更改”]