Coreutils - rejected feature requests
Some of the hardest work on coreutils is knowing what to reject and
providing appropriate justification to the contributors.
The contributions below while all good ideas, were not included for various reasons
detailed on the linked mailing list discussions.
- cat --timestamp. awk or perl is good enough for this.
- cat -n alternate formats.
Manipulation with existing tools supports this better.
- cat --show-ends to highlight trailing whitespace. grep --color was deemed better/sufficient
- cat --header to output filenames for each file. tail -n+1 does this already
- cat -S to squeeze lines just containing blank chars. Existing tools like `sed 's/^ *$//' | cat -s` were thought sufficient.
- cat -d,--direct to use direct I/O. dd has the 'nocache' or 'direct' options and there are general nocache wrappers.
- chmod maintains ctime when permissions unchanged. The
proposed patch was deemed inefficient
- chmod -d to set perms on just directories.
The 'X' mode, or `find` with `chmod` was deemed sufficient
- chmod +S to set setgid on just directories. `find` in combination with `chmod` was deemed sufficient
- chmod -D to set perms on just directories.
The 'X' mode, or `find` with `chmod` was deemed sufficient.
- chmod --parents. Doing this with a simple script or with find was deemed sufficient.
- chmod --umask. The existing chmod options were deemed sufficient.
- chmod b10111. Binary conversion can be done easily in bash or ksh.
- disallow chmod to create world writable files. This couldn't be general, and even so could be easily bypassed
- date +%f to flush output. `stdbuf -oL date ...` was deemed sufficient.
- date should parse 'DAY MONTH, YEAR' format. The format was deemed erroneous
- date +%J to support astronomical julian date. This was not thought common enough to support.
- date -v to provide BSD syntax relative date adjustments. The existing GNU relative date syntax was thought sufficient.
- df,du -g.
Specifying "Gigabyte" output format is neither standard or required
- df autoscale. df -h was thought good enough
- df -g. Separate options for various output units is best avoided.
- df --without-header. --header options are only really useful for data consumers.
- df --dereference to process symlink targets. df was changed to reference symlink targets unconditionally.
- rm --parents.
Deleting the opposite way up the tree was deemed too dangerous
- rm -d. rmdir is equivalent and less confusing
- rm --no-preserve-root. Adding protective prompts would not significantly improve security
- rm -rf .. It was thought existing support for rm -rf "$PWD" suffices.
- rm -s to behave in a "smarter" fashion. `rm -I` or `find | xargs rm` were deemed sufficient
- rm --exclude to exclude file names. Existing tools like find(1) were thought sufficient.
- rm should use remove(), leaving unlink() to the unlink command. We can't change such standardized functionality.
- shred --recursive.
Deemed better to explicitly select (with
find for example)
- shred -r. shred is of limited use with files anyway.