看板 Linux 關於我們 聯絡資訊
我用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) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.176.60.16
dododavid006:可以用雙引號括起來 像這樣 "$(xxx)" 10/20 21:07
dododavid006:等下 為什麼你的不行 10/20 21:08
dododavid006:要不然這樣 find ... -exec ls -l "{}" 10/20 21:10
goldie:只是要看檔案屬性644或rw-r--r--嗎? find本身就print的出來 10/20 21:35
goldie:find . -printf '%u:%g %m %TY%Tm%Td_%TH%TM%TS %p\n' 10/20 21:37
goldie:%m→644 而 %M→rw-r--r-- 10/20 21:37
Microscft:不用那麼麻煩吧 find . -ls 就可以了 10/20 22:06
Microscft:檔案的空白字元會加上跳脫符號 manpage要看 10/20 22:07
goldie:find的manpage好長XD (筆記…) 10/20 22:10
Microscft:可以直接跳到標題UNUSUAL FILENAMES 這問題find早考慮了 10/20 22:12
LIAR:感謝各位,各位說的方法確實在ls都可行,甚至我原本還想和 10/20 22:20
LIAR:rm結合的,用-delete也可以搞定,但我不確定這些方法能否在 10/20 22:21
LIAR:其他指令也成立,find能像原本一樣只輸出檔名,但有跳脫嗎? 10/20 22:22
LIAR:嗚蛙...-print0怎麼擠成一團啊? 10/20 22:27
kdjf:print0是null-terminated strings,要下一個程式也支援這樣傳 10/20 22:35
kdjf:檔名 10/20 22:35
kdjf:用null-terminate是因為null和/在大多數的檔案系統中是唯一不 10/20 22:36
kdjf:出現在正常檔名中的檔案 10/20 22:36
qsort:我比較喜歡 find ./ -type f -print0 | xargs -0 ls -l 10/21 01:16