Unix系統中刪除檔案明中的空格的方法

2021-03-31 17:37:46 字數 715 閱讀 9403

今天臨校師兄**上說有沒有批量刪除檔名中的空格的方法。這類問題像我這等懶人加閒人是最喜歡的了。於是滿口答應下來說試試看。

我們的網路中心有一台freebsd伺服器供學校的unix愛好者登入學習,兼之網路中心可以在裡面物色新的成員。這個伺服器是由我來維護的,招新人也是由我負責的。

為了便於管理和教學,我計畫在/home目錄下間了乙個pub目錄,然後再在每個使用者的目錄下建乙個符號連線。這樣所有的資料或者考題等等的都可以放到pub裡。可是那麼多的使用者不可能乙個個的去建符號連線吧?

當時的解決方法是這樣,從/etc/passwd中讀出每個使用者的主目錄,然後在用乙個for迴圈來進行建立符號連線的動作,整套命令可以一次完成:

#for homedir in `grep 'home' /etc/passwd |awk -f: ''`;do ln -s /home/pub $homedir/pub;done;

我想上次完成任務這麼輕鬆,可這次到命令列一看才覺得有一點緊張了。本來去掉空格用sed就可以,可把檔名傳遞給sed後sed會去處理檔案的內容而不是檔名。還有通過變數傳遞檔名後,shell就會把空格分成的每一段當成不同的檔案來處理,擺弄了半天,終於用下面的命令搞定

export ifs=":";for i in $(ls);do mv $i `echo $i|sed 's// //g'`;done;export ifs=" "

關鍵指出在於使用了「:」作為分割符,這樣shell才不會把檔案中的空格斷開。

刪除List中為空的元素

刪除list集合中的空值元素 解決方法 arraylistlist new arraylist list.add 我不是空的 list.add list.add 我不是空的 list.add list.add null list.add 我不是空的 system.out.println list 我...

漫談 Unix 中的裝置檔案

裝置檔案 unix具有一種統一的 優美的訪問硬體的方法。在unix中,每乙個硬體裝置都被看作是乙個文 件。為了說明這個問題,我們來做如下的演示,檢視 dev hda 這個裝置檔案 less f dev hda 其實,dev hda 並不是乙個檔案,當我們讀取這個裝置檔案的時候,實際情況是我們直接訪問...

漫談 Unix 中的裝置檔案

裝置檔案 unix具有一種統一的 優美的訪問硬體的方法。在unix中,每乙個硬體裝置都被看作是乙個文 件。為了說明這個問題,我們來做如下的演示,檢視 dev hda 這個裝置檔案 less f dev hda 其實,dev hda 並不是乙個檔案,當我們讀取這個裝置檔案的時候,實際情況是我們直接訪問...