[问题] 什么情况文字会以 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