This status update (subscribe via RSS) comes about 4 months after the last one,
and coincides loosely with release 8.16.
Note also the bug tracker with stats which records additions, feature requests and issues.
Rejected ideas
Some of the hardest work on coreutils is knowing what to reject and providing appropriate justification to the contributors. The contributions below all came since the last update and while good ideas, they were not included for various reasons detailed on the mailing list.- cat -n alternate formats. Manipulation with existing tools supports this better.
- join more than two files. It would add complexity while not being scalable.
- join more than one field. There wasn't much interest in this.
- uniq --acumulate. Adding values was thought too specific for coreutils and is available elsewhere.
- cp --quiet. Suppressing ENOENT errors can be done by filtering existing files first.
- chmod --parents. Doing this with a simple script or with find was deemed sufficient.
- chmod --umask. The existing chmod options were deemed sufficient.
- cut -C. There was no need for this alias for --complement (--co)
- ls --sort=class. This was deemed only marginally useful and not worth a new option
- cp --resume. Use rsync
- cp --parallel. While this helps copy speed in some situations, the fix is probably best handled at a lower level.
- rm --no-preserve-root. Adding protective prompts would not significantly improve security
- touch --verbose. This could not be implemented robustly
Additions
Note you can see the latest changes as they're added in the NEWS file (subscribe via RSS).- split should have --suffix option
- split --numeric-suffixes=1 to make starting number configurable
- support unlimited number of split files
- dd skip_bytes count_bytes to efficiently extract portions of a file
- dd conv=sparse like FreeBSD to generate file with holes
- ln --relative to auto generate a relative symlink to the target
- basename -a -s to handle multiple arguments
- dirname -a -s to handle multiple arguments
- fmt --goal to specify a line width "goal" somewhat like BSD
- chmod [=+-].... chmod, mkdir and install support extended permissions specs.
TODO
These items mentioned in the last update are not done yet.- Integrate fallocate(2) into cp and mv. The interface hasn't been improved, so we'll just use it as is
- posix_fallocate() is still not used due to its dependence on fallocate(2)
- libunistring is now available in debian and fedora and we're about to start using it in coreutils
- integrate Linus' faster sha1sum though the benefits are arch and compiler specific. Also the much faster SSE sha1sum implementation was mentioned, which although architecture specific, is probably worth including given the ubiquity of the architecture and the performance gain it provides
- speed up seq
- sort --range to more efficiently output a subset of the input
- add a NSA/DoD verify function to shred
- More sensible cp --preserve=mode behavior
- Handle ACLs by not using umask
- Add a status=noinfo option to silence dd
- Automatically use more CPU cache efficient buffer sizes in sort
- Possibly integrate the threaded external sort patch
- Add an inplace contrib/ script (or command) to robustly edit files in-place
- uniq --key (like sort --key)
- Add OCFS2 support to cp --reflink
- join should support sort options like -n
- dd oflag={fsync,BLKFLSBUF}
- cut --blank-separated
- shuf --random-range=LO-HI to allow repetition within range
- uniq --group to enhance grouping
- csplit --suppress-matched to exclude delimiter lines from the output files
- support SEEK_DATA/SEEK_HOLE in ZFS and elsewhere to efficiently copy sparse files
- Add a `chid` or `runuser` tool to easily drop privileges
- wc -b -M to output frequencies of characters
- PAM support for su
- multiarch support in stdbuf
- rename might be a candidate for coreutils
- --noatime support to various recursive traversal tools
- increase IO block size from 32 to 64K. cat, cp etc may benefit from this
- rm --no-traverse-mount-points which would be especially useful with bind mounts
- du --size to filter results to above/below a specified size
- stat(1) and ls(1) support for birth time. Dependent on xstat() being provided by the kernel
- fmt -w should not have such low limits
- group -0 to support group names with spaces etc.
- cp -u should be restartable. Currently may leave partial files in dest, or wrong files in the presence of hard links.
- chmod -hHLP should be supported (like BSD).
- rm -d to remove empty directories (like BSD).
- numfmt. A new util rather than the previously mentioned printf %{human}.
- split --confirm-create. To allow one to insert a new disk or whatever. There might be a way to do this externally?
© May 4 2012