将Ubuntu truncate命令安装到Mac OS X 10.7


10

有什么方法可以将Ubuntu的truncate命令安装到Mac OS X 10.7,以便在Terminal Shell中使用该命令?


你想做什么?
量子

我有一个确保截断功能的shell脚本,我想在本地Mac中尝试它。
猛禽2012年

Answers:


13

这实际上不是服务器故障,可能是“超级用户”或“与众不同”,但是您可以使用自制软件安装很多二进制文件,位于以下位置:

http://mxcl.github.com/homebrew/

首先,您需要为Xcode安装命令行工具,如果还没有的话,可能需要您购买Xcode。

完成此操作后,运行:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

要安装自制软件,请在安装后运行:

brew install truncate

我发现自制程序中的截断与Ubuntu版本不同。它没有选项标志。
猛禽2012年

不过,您还可以尝试使用Fink:finkproject.orgMacportsmacports.org,然后运行brew uninstall tr​​uncate。
Alex Berry 2012年

2
也将不胜感激,因为无论它是否对您有用,我都为您的问题提供了有效的答案:)
Alex Berry 2012年

现在,使用优胜美地为我解决了以下问题(也使用家庭酿造:magiclantern.fm/forum/index.php?topic=6407.0
msmafra 2014年

17

更新:

自2015年3月起truncate,Homebrew中不再提供独立公式。

作为truncateGNU Coreutils的一部分,您应该使用以下命令将其安装在OS X上:

> brew install coreutils

安装truncate后将可以使用gtruncate。请注意,Coreutils中的所有程序都可以使用前缀g


2
这应该是公认的答案。
fguillen

1
看起来truncateHomebrew再次提供了自己的公式。
纳文

4

truncate不可用时,您可以经常使用dd。例如。

使文件充满零:

dd if=/dev/zero of=/tmp/youroutputfile bs=1m count=50

截断现有文件:

dd if=yourinputfile of=/tmp/youroutputfile bs=1k count=1

注意:OS X dd使用小写单位字母,而GNU dd使用大写字母。


dd几乎可以实现目标。可以dd从文件末尾截断吗?从的man文件读取时dd,我知道只能从文件开头读取。如何从文件中删除最后100个字节?
猛禽

1
据我所知。您必须自己计算目标大小,方法是先读取文件大小并减去100字节。
伊恩·麦金农

0

需要考虑的一点是,被截断的文件是同一个文件还是同名的新文件。对于仍在写入或tail编辑中的日志文件非常重要。

:> file

在* nix和macOS上均可使用,以就地截断文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.