[問題] 什麼情況文字會以 null 作為換行符?

作者: Gold740716 (項為之強)   2016-03-14 00:03:49
在 sed 的 man page 中看到選項 -z ,
以 null 作為輸入資料的換行符。
當我希望 sed 不要一次只處理一行時,
會用這個選項。
但這應該不是它本來的目的。
我在其它命令也有看到類似的選項;
(像 xargs 的 -0 選項。)
是什麼時候文字會以 null 作為換行符?
C 語言的字串是以 null 結尾,
我猜這些選項可能是要和 C 語言配合。
但感覺有點小題大作……。
請教各位知道這個選項的意義嗎?
作者: lantw44 (#######################)   2016-03-14 02:02:00
/proc/<pid>/cmdline 和 /proc/<pid>/environ?
作者: Vdragon (V字龍)   2016-03-14 07:55:00
當批量處理的檔案有含空白字元的檔名的時候
作者: ckc1ark (偽物)   2016-03-14 09:51:00
因為linux檔名的限制只有/和null byte不能用 要最精確分隔多個檔名當然就只有用null byte了
作者: Gold740716 (項為之強)   2016-03-14 11:24:00
不是用換行符就可以了嗎?
作者: bitlife (BIT一生)   2016-03-14 13:52:00
假設你把執行檔的的data segment存成檔案(或直接是記憶體映射檔)來處理,不就自然有一堆用\0分隔的字串資料?
作者: stimim (qqaa)   2016-03-14 14:41:00
you can have \n (0x0a) in your file name (WTF..)example: echo abc | xargs -0 touch
作者: Gold740716 (項為之強)   2016-03-14 20:44:00
還真的 XD
作者: kdjf (我抓得到什麼呢?)   2016-03-14 23:43:00
還有各種non-printable,甚至像xfs檔名可以有/
作者: kenduest (小州)   2016-03-15 04:20:00
xfs 檔案可以有 / 字元 ? 那請問怎麼區分路徑呢一般 linux 下檔案系統大多久是 \0 與 / 不可以當檔名若 / 可以成為檔案名稱部分,識別方式就很有意思了
作者: willy69wu31 (小小吳)   2016-03-15 20:45:00
xfs 可以有 / ? 請問有詳細資訊嗎
作者: kdjf (我抓得到什麼呢?)   2016-03-16 00:28:00
我也忘了.. FS的spec中可以,但我忘了那時是怎麼辦到的還好是用loopback device玩的,因為刪不掉XD
作者: willy69wu31 (小小吳)   2016-03-16 00:33:00
我查到的答案是即使xfs也不能用/若硬改為/的話fsck會當作異常把檔名修掉
作者: danny8376 (釣到一隻猴子@_@)   2016-03-16 18:18:00
不少FS其實都可以 只是一般系統不會允許XD

Links booklink

Contact Us: admin [ a t ] ucptt.com