文章摘要: 在linux檔案系統中,一般來說我們可以用以下方法來遍歷某個目錄下的檔案。 for file in $(ls *); do echo $ done 但是,由於for語句是按照單詞為單位(即空格)進行分割的,因此,當檔名稱中有空格的時候,就會出現乙個檔名被分成兩個或者多個檔案來讀的情況。比如,當前目錄下有下面幾個檔案: a.txt b.txt 「c .txt」 上面的指令碼執行的結果就變成 a.txt b.txt c .txt 了。 遇到這種情況怎麼辦?其實我們我可以用while語句
在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
完。
Linux中刪除特殊名稱檔案的多種方式
今日分享 我們在肉體的疾病方面花了不少錢,精神的病害方面卻沒有花什麼,現在已經到了時候,我們應該有不平凡的學校。瓦爾登湖 我們都知道,在linux刪除乙個檔案可以使用rm命令,但是有一些特殊名稱的檔案使用普通的rm方式卻沒法刪除,本文介紹linux中刪除特殊名稱檔案的多種方式。在介紹之前,簡單說明一...
Linux中刪除特殊名稱檔案的多種方式
今日分享 我們在肉體的疾病方面花了不少錢,精神的病害方面卻沒有花什麼,現在已經到了時候,我們應該有不平凡的學校。瓦爾登湖 我們都知道,在linux刪除乙個檔案可以使用rm命令,但是有一些特殊名稱的檔案使用普通的rm方式卻沒法刪除,本文介紹linux中刪除特殊名稱檔案的多種方式。在介紹之前,簡單說明一...
Linux中刪除特殊名稱檔案的多種方式
我們都知道,在linux刪除乙個檔案可以使用rm命令,但是有一些特殊名稱的檔案使用普通的rm方式卻沒法刪除,本文介紹linux中刪除特殊名稱檔案的多種方式。在介紹之前,簡單說明一下linux中檔案命名規則。檔案或目錄名由除 和空字元 0 之外的任意ascii字串行組成。當然很多作業系統允許更多型別的...