我們經常遇到文件和文件夾名稱。 在大多數情況下,文件/文件夾名稱與文件/文件夾的內容相關,並以數字和字元開頭。 Alpha數字文件名是相當普遍和非常廣泛使用,但是這不是這樣的情況,當我們必須處理文件/文件夾名稱中有特殊字元。
除了把這樣命名的人拖出去打一頓之外,你還是需要學會如何處理這樣的文件的。。。詳情見上面鏈接。
『貳』 linux命令行下文件名中有空格的處理方法
Q:我在樹莓派命令行模式下使用mplayer播放單首音樂,因為文件名中含有空格,提示不存在該文件,該如何解決?
[johnwick@raspberrypi~]$sudo mplayer Me like yuh.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2017 MPlayer Team
Cannot open file '/root/.mplayer/input.conf': No such file or directory
Failed to open /root/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.
Playing Me.
Cannot open file 'Me': No such file or directory
Failed to open Me.
Playing like.
Cannot open file 'like': No such file or directory
Failed to open like.
Playing yuh.mp3.
Cannot open file 'yuh.mp3': No such file or directory
Failed to open yuh.mp3.
A:mplayerh播放當前目錄下單首歌曲的格式為: mplayer [文件名],顯然系統認為 Me like yuh.mp3 是三個獨立文件
解決辦法:①使用引號(英文輸入法下)將文件名全部包含: mplayer "Me like yuh.mp3"
方法②空格前使用連接符號"\" : mplayer Me\ like\ yuh.mp3 「\」告訴系統後面跟著的字元為原意,不是命令
完畢。
『叄』 linux shell 腳本中 如何處理帶空格的超長目錄名 如下:
#/bin/bash
OLDIFS=$IFS
IFS=$'\n'
myhome=`pwd`
for str in `find . -type d `
do
cd $myhome
if [ `expr index "$str" "#"` -eq 0 ]
then
echo "process $str"
cd "$str"
fi
done
IFS=$OLDIFS
『肆』 linux裡面的命令:./和. /【第二個有空格】,分別怎麼用。
./ 點號緊跟/表示當前目錄(相對路徑的寫法)。直接 / 表示根目錄。
. / 有空格的點號等同於source命令,表示在當前shell環境執行後面的命令或腳本(不加點號默認是新開一個shell執行的)。例如 . /home/test.sh 等同於 source /home/test.sh。
用source執行的腳本所做的任何改變會影響當前shell(如其中有用cd改變目錄,腳本執行完後目錄就變掉了);如果沒用source,就不會影響當前shell。
上述兩種情況結合:
. ./test.sh
表示以source方式在當前shell執行當前目錄下的test.sh腳本。
對新手來說,為明顯區別,建議書寫的時候將第二種情況直接寫作source而不要用點號。
『伍』 linux 下,打開一個文件把裡面的空格替換成「:"怎麼弄啊
你是想用命令把裡面的所有的空格都改為:嗎,還是怎麼啊,如果只改幾個的話,用vi就可以,如果是批量的話,還是用命令把,sed 's/ /:/g' filename
sed命令我也不大會,你自己看一下參考資料,我也不怎麼用linux的