linux環境去掉檔名空格有一下兩種方法: 方法
一、使用$ifs來處理
old=$ifs;
ifs=$'\n';
cd /home/arron/桌面/data/1月/1#
for file in $(ls *)
do#unzip -d /home/arron/桌面/aa $file
echo $file
done
ifs=$old
列印觀察檔名,檔名已經不會因為空格的原因被split了 方法
二、可以直接去掉檔名的空格,例如檔名是'a b.txt',那麼linux缺省會認為是a和b.txt
在linux檔案系統中,一般來說我們可以用以下方法來遍歷某個目錄下的檔案。
for file in $(ls *); do
echo $
done
但是,由於for語句是按照單詞為單位(即空格)進行分割的,因此,當檔名稱中有空格的時候,就會出現乙個檔名被分成兩個或者多個檔案來讀的情況。比如,當前目錄下有下面幾個檔案:
a.txt b.txt 「c .txt」
上面的指令碼執行的結果就變成
a.txt
b.txt
c.txt
了。遇到這種情況怎麼辦?其實我們我可以用while語句加上read命令來輕鬆實現。
ls * | while read file; do
echo $
done
即先把每個檔案的名稱讀取到變數file中,然後再輸出到螢幕上。
實現了遍歷檔名帶有空格的檔案之後,我們所要做的就是修改檔名,除去檔名中的空格。用tr命令來實現。
echo $ | tr -d 『 『
將該結果儲存到變數new_file_name中,再用mv命令來重新命名檔案。
mv 「$」 $
注:由於檔名中可能有空格,所以必須用引號將檔名引起來。
整個指令碼如下:
ls * | while read file; do
old_file_name=$
new_file_name=`echo $ | tr -d ' '`
mv "$" "$"
done
bat for 處理帶空格的檔名
時常需要把乙個舊版本的svn專案轉化成新的工程.但是舊片的svn工程裡面還有很多的.svn資料夾.手工刪除這些資料夾顯然不是很好的方法.由是想到了寫批處理自動遍歷和刪除.svn資料夾.但是在寫批處理的時候遇到乙個問題.如果資料夾帶有空格的話.for命令只取空格前面的資料.在網上查了很久,試用了很多方...
git 檔名包含空格處理辦法
想要對乙個檔名中帶空格的檔案重新命名,同時新增git lfs支援。git mv cpp primer.pdf cpp primer 4 zh cn.pdf1.執行git lfs install開啟lfs功能 2.使用git lfs track命令進行大檔案追蹤 例如git lfs track png...
linux shell 點號 空格 檔名
今天在看 etc init.d nginx指令碼時,發現指令碼中存在大量行為 點號 空格 檔名 甚是不解。比如檔案開始的幾行 if r etc default nginx then etc default nginx fi.lib init vars.sh lib lsb init function...