0.0.13
This is a big release with 276 new PR's merged!
The highlights of this release are:
- Mininum supported Rust version is now 1.54.
- Many improvements and fixes in many utils. In particular,
cp
,dd
,df
,split
andtr
have gotten very large improvements and are much more compatible with GNU. - Online user documentation featuring installation instructions, descriptions, flags, options and examples.
- We now use
clap
3, which gives the--help
output a new look and enables abbreviations of long arguments. For example:
ls --color # already worked pre 0.0.13
ls --col # any unambiguous shorthand now also works
Changes
The PR's listed below change the user-facing behaviour of the utils. It is just a small selection of all the contributions in this release.
General
- Clap 3 by @tertsdiepraam in #2863
- Infer unambiguous long arguments in clap by @tertsdiepraam in #2936
- User documentation by @tertsdiepraam in #2897, #3152, #3134
- Include license text in all published crates by @davide125 in #3131
uucore
- Allow backup suffix with hyphen value by @tertsdiepraam in #2997
- Error on negative interval in
parse_time::from_str()
by @jfinkels in #3292 - No uppercase suffixes in
parse_time
by @jfinkels in #3315 - Don't panic when canonicalizing a nonexistent path by @water-ghosts in #3103
- Fix
parse_size
to use u64 rather than usize for better 32-bit support by @omertuc in #3084
cp
- Override args instead of having them conflict by @tertsdiepraam in #2998
- Avoid following a destination symlink with
-P
by @refi64 in #3101 - Create backup before hardlink by @water-ghosts in #3033
- Fail when copying a directory to a file by @water-ghosts in #3044
- Only allow directory for
-t
by @shoriminimoe in #3027 - Support copying FIFOs with
-r
by @water-ghosts in #3032 - Don't panic when calling
cp -a
with a nonexistent file by @water-ghosts in #2960 - Avoid infinite recursion when source and destinations are same while using
cp -R
by @Narasimha1997 in #3018
dd
- block/unblock on ebcdic/ascii conversions by @jfinkels in #2909
- Correct behavior when status=noxfer by @jfinkels in #2915
- Support
seek=N
when destination is stdout by @jfinkels in #2911 - Add support for 'b' and 'x' multipliers in numeric arguments by @jfinkels in #3028
- Allow multiple instances of arguments by @iovanom in #3021
- Correct order and phrasing of truncated record by @jfinkels in #3154
- Correctly account for partial record written by @jfinkels in #3129
- Create ConversionMode to simplify conversion, blocking, and unblocking by @jfinkels in #3293
- Don't error when outfile is /dev/null by @jfinkels in #3148
- Implement iseek + oseek flags by @chordtoll in #3256
- Make
status=progress
rewrite once/sec by @ndd7xv in #3078 - Pad partial record with spaces in some cases by @jfinkels in #3156
- Remove spurious zero multiplier warning by @jfinkels in #3128
- Show warning if skipping past end of input by @jfinkels in #3066
- Show warning when using 0x size multiplier by @jfinkels in #3085
- Truncate to specified seek length by @jfinkels in #3076
df
- Adds support for mount path prefix matching and input path by @crazystylus in #3161
--output w/o "="
doesn't expect further args by @cakebaker in #3327- Add support for
--total
option by @jfinkels in #3197 - Always produce the same order in output table by @jfinkels in #3126
- Always round up usage percentage (#3208) by @cakebaker in #3230
- Correctly scale bytes by block size by @jfinkels in #3182
- Fix block size header for multiples of 1024 by @jfinkels in #3191
- Fix calculation of
Use%
column by @cakebaker in #3309 - Fix calculation of Use% in "total" row by @cakebaker in #3347
- Fix panic when using
-x
argument (#3257) by @cakebaker in #3258 - Implement the
--output
command-line argument by @jfinkels in #3176, #3322, #3323 - Implement the File column by @jfinkels in #3294
- Omit reserved filesystem blocks in "Available" by @cakebaker in #3270
- Remove unused "--direct" option by @cakebaker in #3263
- Some option changes by @xxyzz in #3127
echo
hashsum
- Added b2sum and b3sum utilities by @palaster in #3164
- Add BLAKE3 to Hashing Algorithms by @DestroyerXyz in #3108
head
- Add
---presume-input-pipe
parameter by @DevSabb in #3345 - Don't add trailing newline to end of file that didn't originally have one by @jfinkels in #2957
install
join
- Print unsorted line in error message by @cohosh in #2899
- Fix default check order behaviour by @cohosh in #2908
- Add support for
-t '\0'
by @jtracey in #2881 - "Support" field numbers larger than
usize::MAX
by @jtracey in #2882 - Add support for non-unicode field separators by @jtracey in #2902
- Improve performance by @jtracey in #3092
ln
- Make the tests/ln/hard-backup.sh test work by @sylvestre in #3340
- Pass tests/ln/backup-1.sh & improvement in the error messages by @sylvestre in #3346
ls
- Add new optional arguments to
--classify
flag by @abhishekc-sharma in #3041 - Add proper quotes on symlink with
--quoting-style=shell-escape
by @sylvestre in #3317 - Fix display of bad file descriptor errors by @kimono-koans in #2875
- Fix display of inodes and add allocation size feature by @kimono-koans in #3052
- When
-aA
are provided, the order matters by @sylvestre in #3285
mkdir
- Add support of
mkdir -p foo/.
by @sylvestre in #3311 - Recursive reporting of created directories in verbose mode by @353fc443 in #3217
nproc
- Add the full support of
OMP_THREAD_LIMIT
by @sylvestre in #3286 - Improve the GNU compat by @sylvestre in #3248
- Make tests/misc/nproc-override.sh pass by implementing
OMP_NUM_THREADS=X,Y,Z
by @sylvestre in #3296
paste
pinky
pr
- Move from getopts to clap and fix heuristic for
-n
by @tertsdiepraam in #3185
printf
- Update
%g
formatting to match GNU by @water-ghosts in #3087 - Fix printf sci notation round up by @nickd0 in #3116
- Support leading zeroes with
%0n
formatting by @water-ghosts in #3070 - Use clap default help and version by @ndd7xv in #3067
realpath
seq
- Add
-f FORMAT
option by @jfinkels in #2918 - Correct error message for zero increment by @jfinkels in #2923
- Better argument parsing by @HeroicKatora in #3081
shuf
- accept multiple occurances of head-count argument by @DevSabb in #3329
sleep
sort
- Add two missing spaces in help texts by @cakebaker in #3287
split
- Add support for
-e
argument by @jfinkels in #3107 - Add support for
-x
option (hex suffixes) by @jfinkels in #2981 - Add support for
-n l/NUM
option to split by @jfinkels in #2980 - Avoid writing final empty chunk with
-C
by @jfinkels in #3278 - Catch and handle broken pipe errors by @jfinkels in #3275
- Correct error message on invalid arg. to
-a
by @jfinkels in #3006 - Elide all chunks when input file is empty by @jfinkels in #3274
- Error when
--additional-suffix contains
/
by @jfinkels in #3111 - Error when num. of chunks is greater than num. of possible filenames by @ndd7xv in #3146
- Handle no final newline with
--line-bytes
by @jfinkels in #3277 - Add
--line-bytes
option by @jfinkels in #3204 - Add
-n
option by @jfinkels in #2866 - Implement outputting kth chunk of file by @jfinkels in #3207
- Add
---io-blksize
parameter by @DevSabb in #3064
stat
tail
- Fix a bug in
tail [ -n | -c ] +NUM <file>
by @jfinkels in #2904 - Don't error when following non-UTF-8 data by @jfinkels in #2916
- Add
---presume-input-pipe
parameter by @DevSabb in #3345 - Support zero-terminated lines in streams by @jfinkels in #2898
test
test
: fix wsl executable permission by @tertsdiepraam in #2965
timeout
- Avoid panicking for empty string by @353fc443 in #3206
- Fix bug in
--preserve-status
mode by @jfinkels in #3249 - Give usage error on invalid time interval by @jfinkels in #3283
- Produce usage error on invalid signal by @jfinkels in #3297
- Return
125
on invalid time interval args by @jfinkels in #3314 - Support long form of
--kill-after
arg by @jfinkels in #3313
touch
- Better error messages when no args is provided by @hbina in #3047
- Implement
-
by @dgunay in #3158 - Show error on
-h
with nonexistent file by @jfinkels in #3117
tr
- Expanding expansion module (added support for character classes and many more patterns) by @hbina in #2502
- Fix octal interpretation of repeat count string by @DevSabb in #3178
true
- Make true return false less frequently by @HeroicKatora in #3014
truncate
- Create non-existent file by default by @jfinkels in #2912
- Add a division by zero error by @jfinkels in #2934
- Prevent underflow when reducing size by @jfinkels in #2945
- Better error msg when dir does not exist by @jfinkels in #2943
- Change cli error return code by @shoriminimoe in #3012
- Error when trying to truncate a fifo by @jfinkels in #2944
wc
- Fix counting files from pseudo-filesystem by @tertsdiepraam in #2935
- Compute number widths using total file sizes by @ackerleytng in #3304
- Implement
--files0-from
option by @allan-silva in #2966
New Contributors
@cohosh (#2899, @g-k (#2893), @water-ghosts (#2956), @biomunky (#2964), @danieleades (#2963), @douglaz (#2975), @Narasimha1997 (#2947), @Toxaris (#3020), @rahulkadukar (#3030), @DevSabb (#3038), @HeroicKatora (#3014), @shoriminimoe (#3012), @lguist (#3011), @ndd7xv (#3024), @slycordinator (#3013), @RishiKumarRay (#3023), @daissi (#3100), @snobee (#3053), @abhishekc-sharma (#3041), @DestroyerXyz (#3108), @alextibbles (#3110), @serhansekman (#3121), @allan-silva (#2966), @davide125 (#3130), @crazystylus (#3074), @miallo (#3145), @iovanom (#3021), @palaster (#3056), @xxyzz (#3045), @omertuc (#3084), @cakebaker (#3202), @dgunay (#3158), @nickd0 (#3116), @OHNONOTAMOTH (#3244), @bnjbvr (#3264), @chordtoll (#3256), @ackerleytng (#3304)
Full Changelog: 0.0.12...0.0.13