This status update (subscribe via RSS) comes about 4 months after the last one.
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. These are included in a full list of rejected coreutils requests.- date should parse 'DAY MONTH, YEAR' format. The format was deemed erroneous
- cat --header to output filenames for each file. tail -n+1 does this already
- Suppress trailing slash with ls -F /. The result was deemed too inconsistent
- ls --group-numbers=locale to output thousands separators. BLOCK_SIZE or numfmt were deemed sufficient
- disallow chmod to create world writable files. This couldn't be general, and even so could be easily bypassed
- stat --list-fstypes. The internally supported file system IDs were thought best not exposed
- cp --preserve=all should copy ext2 extended attributes. Would need file system agnostic interface (like copyfile())
Additions
Note you can see the latest changes as they're added in the NEWS file (subscribe via RSS).- dd status=none now suppresses all diagnostics
- mv replaces empty dirs in a cross file system move
- mk{dir, fifo, nod} -Z support creating a SMACK security context
- ls -Z shows SMACK security context where available
- shuf --repetitions to support repetitions in the output
- du --inodes to count files rather than blocks
TODO
These new items were identified since the last update.- sort might use vfork() or posix_spawn() for more efficient memory handling.
- csplit -i to support specifying the start number when naming split files.
- Possibly add shuf --all-permutations to consume all input and output all permutations.
- cut, numfmt, sort and join should be consistent and all allow overidding the input separator option.
- Possibly adjust how cp --link overrides dereference settings.
- Possibly adjust how df handles symlinks.
- install --preserve to give more control over copied attributes and better symmetry with cp.
- shred --remove[=HOW] to give more control over how directory entries are cleared.
- Improve performance of shred --repetitions by using reservoir-sampling with replacement.
- Possibly allow stty to set abitrary speeds.
- Possibly implement deterministic handling of hardlinks by cp -R.
- 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
- sort --head or sort --range to more efficiently output a subset of the input
- add a NSA/DoD verify function to shred
- Handle ACLs by not using umask
- 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
- Possibly add OCFS2 support to cp --reflink
- dd oflag={fsync,BLKFLSBUF}
- cut --blank-separated
- support SEEK_DATA/SEEK_HOLE in ZFS and elsewhere to efficiently copy sparse files
- wc -b -M to output frequencies of characters
- multiarch support in stdbuf
- rename might be a candidate for coreutils
- --noatime support to various recursive traversal tools
- rm --no-traverse-mount-points which would be especially useful with bind mounts
- 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.
- split --confirm-create. To allow one to insert a new disk or whatever. There might be a way to do this externally?
- chmod -hHLP should be supported (like BSD).
- support tee --write-error={[cont],ignore,exit}
- support sleep,timeout --date="..." to specify absolute times independent of suspend/resume etc.
- expand seq fast path to more cases like specifying hex, adding arbitrary integers and subtraction etc.
- Possibly use sendfile in cp. Not under consideration yet until benchmarked and the code made portable enough.
- Add an sha-3 util. Work already started on such a GPL util elsewhere.
- Possibly s/--first-only/--initial/ in unexpand, to be less ambiguous and match expand.
- mkdir -p should be concurrent. I.E. dirs created separately while its running shouldn't cause an error
- Possibly adjust sort merging to minimize data I/O. Also unexpectedly slow merging was reported
- Sort threading issues were reported on Solaris 10 and RHEL 5.8
- Integrate multi-byte support for expand and unexpand using libunistring and a common core for the two utils
- Possibly support tail -f --timestamp to prepend timestamps to output
- Integrate support for ISO 8601 basic format as input to date
- Possibly indicate "capabilities" with the ^ character instead of colors
- Speed up base64, md5sum and sha*sum by using with OpenSSL's libcrypto implementations where available
- Integrate {join,uniq} --key to provide sort(1) like field processing in join(1) and uniq(1)
- Integrate tests adjustment to use rngtest
- Integrate SELinux restorecon improvements in copy.c
© Sep 16 2013