$(...)中間有空白的問題 - Linux

Hardy avatar
By Hardy
at 2013-10-20T20:58

Table of Contents

我用find找了一些檔案,之後要丟給其他指令,譬如用ls -ld要看看權限,
但是檔名中有空白:
.
./olympus
./olympus/40X mediumV.jpg
./olympus/Rtest
./olympus/Rtest/ca.crt
./olympus/Rca.crt
./olympus/40X medium.jpg
./ELISA M2e
./ELISA M2e/CTEST
./ELISA M2e/CTEST/ca.crt
./ELISA M2e/Cca.crt
./LEICA
./LEICA/CRca.crt
./LEICA/ERca.crt
./LEICA/_CACHE_001_
./Rca.crt

如果用
ls -ld $(find . )
ls: 無法存取 ./olympus/40X: 沒有此一檔案或目錄
ls: 無法存取 mediumV.jpg: 沒有此一檔案或目錄
ls: 無法存取 ./olympus/40X: 沒有此一檔案或目錄
ls: 無法存取 medium.jpg: 沒有此一檔案或目錄
ls: 無法存取 ./ELISA: 沒有此一檔案或目錄
ls: 無法存取 M2e: 沒有此一檔案或目錄
ls: 無法存取 ./ELISA: 沒有此一檔案或目錄
ls: 無法存取 M2e/CTEST: 沒有此一檔案或目錄
ls: 無法存取 ./ELISA: 沒有此一檔案或目錄
ls: 無法存取 M2e/CTEST/ca.crt: 沒有此一檔案或目錄
ls: 無法存取 ./ELISA: 沒有此一檔案或目錄
ls: 無法存取 M2e/Cca.crt: 沒有此一檔案或目錄
........後面就是正常的ls。

如果用""把$()包起來
ls -l "$(find . )"

ls: 無法存取 .
./olympus
./olympus/40X mediumV.jpg
./olympus/Rtest
./olympus/Rtest/ca.crt
./olympus/Rca.crt
./olympus/40X medium.jpg
./ELISA M2e
./ELISA M2e/CTEST
./ELISA M2e/CTEST/ca.crt
./ELISA M2e/Cca.crt
./LEICA
./LEICA/CRca.crt
./LEICA/ERca.crt
./LEICA/_CACHE_001_
./Rca.crt: 沒有此一檔案或目錄
連ls的功能都不見了。
請問我應該怎麼把有空白檔名的檔案正確傳給ls?

--
起初,他們追殺共產主義者,我沒有說話,因為我不是共產主義者;
接著,他們追殺猶太人,我沒有說話,因為我不是猶太人;
後來,他們追殺工會成員,我沒有說話,因為我不是工會成員;
此後,他們追殺天主教徒,我沒有說話,因為我是新教教徒;
最後,他們奔我而來,卻再也沒有人站起來為我說話了。
《First They Came(他們首次來時)》,Martin Niemoller牧師(1892-1984)

--
Tags: Linux

All Comments

Jack avatar
By Jack
at 2013-10-21T08:40
可以用雙引號括起來 像這樣 "$(xxx)"
Eartha avatar
By Eartha
at 2013-10-23T00:38
等下 為什麼你的不行
Wallis avatar
By Wallis
at 2013-10-24T13:11
要不然這樣 find ... -exec ls -l "{}"
Frederic avatar
By Frederic
at 2013-10-27T01:36
只是要看檔案屬性644或rw-r--r--嗎? find本身就print的出來
Kyle avatar
By Kyle
at 2013-10-29T09:25
find . -printf '%u:%g %m %TY%Tm%Td_%TH%TM%TS %p\n'
%m→644 而 %M→rw-r--r--
Quanna avatar
By Quanna
at 2013-11-03T08:43
不用那麼麻煩吧 find . -ls 就可以了
Freda avatar
By Freda
at 2013-11-05T15:25
檔案的空白字元會加上跳脫符號 manpage要看
Susan avatar
By Susan
at 2013-11-08T03:45
find的manpage好長XD (筆記…)
Connor avatar
By Connor
at 2013-11-08T17:46
可以直接跳到標題UNUSUAL FILENAMES 這問題find早考慮了
Eden avatar
By Eden
at 2013-11-09T21:21
感謝各位,各位說的方法確實在ls都可行,甚至我原本還想和
Dora avatar
By Dora
at 2013-11-14T02:36
rm結合的,用-delete也可以搞定,但我不確定這些方法能否在
Adele avatar
By Adele
at 2013-11-17T02:02
其他指令也成立,find能像原本一樣只輸出檔名,但有跳脫嗎?
Candice avatar
By Candice
at 2013-11-18T21:43
嗚蛙...-print0怎麼擠成一團啊?
Sierra Rose avatar
By Sierra Rose
at 2013-11-21T07:59
print0是null-terminated strings,要下一個程式也支援這樣傳
檔名
Lily avatar
By Lily
at 2013-11-22T09:51
用null-terminate是因為null和/在大多數的檔案系統中是唯一不
出現在正常檔名中的檔案
Ingrid avatar
By Ingrid
at 2013-11-27T03:15
我比較喜歡 find ./ -type f -print0 | xargs -0 ls -l

系統硬碟換主機

Franklin avatar
By Franklin
at 2013-10-20T11:15
各位好 小弟是LINUX新手, 實在google不到答案, 想請求各位高手 能給關鍵字,或者解決提示... ps : 手機排版請見諒 ----------------------------------- 小弟在學生,課堂上使用debian linux教學 需要用教室電腦搭自己的usb外接硬碟開機 但是回家後 ...

監控程序結束

Dinah avatar
By Dinah
at 2013-10-19T18:17
不知道用什麼關鍵字,找了一陣子了, 才上來問...如果這問題太蠢了請鞭小力點 Orz 我想要監控程序結束執行與否,來決定要不要繼續執行下一批資料 舉個例子: $ matlab (程序) andamp; 我用 for + if 控制開超過十個就暫停 (sleep) 但程式執行的時間很難抓,如果暫停的時間 ...

smplayer有畫面沒聲音

Frederic avatar
By Frederic
at 2013-10-18T16:24
剛剛解決了,步驟如下: - sudo apt-get remove ffmpeg mencoder mplayer - sudo apt-get install libx264-dev libxvidcore-dev libopencore-amrwb-dev libopencore-amrnb-dev ...

Ubuntu 13.10 釋出囉!

Una avatar
By Una
at 2013-10-18T14:31
Unity 桌面及伺服器版本: http://releases.ubuntu.com/saucy/ 教育版本: http://cdimage.ubuntu.com/edubuntu/releases/saucy/release/ KDE 桌面版本: http://cdimage.ubuntu.com/ku ...

lubuntu 13 使用 xrdp

Skylar DavisLinda avatar
By Skylar DavisLinda
at 2013-10-18T12:42
請問一下小弟在 lubuntu13中安裝xrdp 可是安裝完成後從windows使用遠端桌面登入後 變成一片空白 是因為lubuntu使用的都是LXDE嗎 是否一定要安裝gnome 是否可以使用LXDE 如果是要裝gnome那不如就用一般的ubuntu就好了 請問大家是否有些建議 - ...