Coreutils Gotchas(2015年)

2021-06-18 21:51:51

我们对GNU Coreutils的界面和操作进行了非常仔细的考虑,但遗憾的是由于倒退兼容性,这些实用程序可能会混淆一些行为或默认值。该信息将继续更新并与Coreutils FAQ重叠,此列表集中在较少频繁的潜在问题上。

chmod -r是冗余和棘手的。如果例如,从VFAT复制一个目录,并希望在文件中关闭CHMOD-644上的可执行位,这将无法重复,因为它可以从DIR中删除可执行位。这是可实现的方法:Cutn' t使用由任意空白分隔的字段和#39; s往往更好地使用awk oreven join -a1 -o1。$字段$ file / dev / null uct -s仅抑制不分隔符的行。因此,如果您有一个缺少现场的行,它确实包含一些分隔符,则输出空行

同样,如果您想要在没有分隔符时输出空行需要将分隔符(如:

dd iflag = fullblock通常是在从FIFO /管道读取时所需的内容,你经常得到一个简短的读数,这意味着如果你指定&#34,你会得到太少的数据。如果您指定&#34,则计算"或者太多数据;同步"例如:注意自版本8.10以来,我们确实在某些情况下发出警告,但没有计数= 1 aboveas短读数通常与&#34的习语一起使用计数= 1;虽然可能是DD Iflag =非阻塞是一个Moredirect和一般方式来做这件事吗? dd conv = noerror真的也需要conv = syncso认为,如果从失败磁盘读取,则一个人得到正确对齐的数据,用nuls替换为unuls.note如果块中的任何位置都有读取错误,则将丢弃整个块。因此,在速度(更大)之间的平衡并最小化数据丢失(更小)。这在更专用的toollike ddrescue中,可以更简单,更为动态。

dd skip = 0x100不跳过跳过的东西和#34; 0x"前缀被视为零乘法器.Coreuls> = 8.26至少会警告这一点,建议使用" 00x"如果这真的是意图。

有关完全可移植性,请在解析DF的输出时,需要-P选项。避免了线包装,虽然自版本8.11(2011年4月)以来,虽然DF将不再包装线条来帮助避免这款GOTCHA。此外,如果需要解析标题,则-p选项将使用更标准化(但含糊不清)的Wording.See也是块大小问题。如果两个或多个硬链接指向同一文件,则仅计算其中一个链接。文件参数顺序会影响哪些链接,并更改参数顺序可能会更改DU输出的数字。注意这也影响了困惑的指定目录:$ cd git / coreutils $ du-s ./tests593120 ./tests593120 ./$ du -s ./tests ./#深度首先获取列出的项目(虽然独立计数)10036。/tests583084 ./#注意顺序即使具有隐式独立$ du -s - separate-dirs ./tests ./tests ./128 ./tests16268 ./$ du -s - separate-dirs ./tests16268 ./tests16268 ./

Note Du Donn' t特殊处理Refrinked文件,因此将计算回流文件的所有实例。 Echo是非便携式,其行为在系统和shell内置等中发散等等。一个应该真正考虑使用printf。这个shell会话说明了一些不一致的东西。您看到的位置,您认为CoreutilsStandlone版本:$ echo -e -n#输出没有$ echo -n -e $ echo - -n#选项终结器输出 - -n $ posixly_correct = 1 envecho -e -ne -n​​ $ posixly_correct = 1 envecho -n -e#无输出无论‽

Warning: Can only detect less than 5000 characters