-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am 18.10.2016 um 22:33 schrieb Eric Blake: > tag 24730 notabug > thanks > > On 10/18/2016 02:49 PM, L. A. Walsh wrote: >> >> It doesn't seem rmdir and mkdir are behaving "reciprocally"... >> >> If I type >> >> mkdir -p ./a/b/c # no error > > . already exists, so mkdir silently does nothing, > ./a needs to be created, > ./a/b needs to be created, > ./a/b/c needs to be created > >> rmdir -p ./a/b/c # get error msg, but a,b,c removed. > > ./a/b/c needs to be removed, > ./a/b needs to be removed, > ./a needs to be removed, > . needs to be removed, but you can't do that, hence the error > > The apparent asymmetry is due to the POSIX rules on how '.' is treated; > but we can't change the behavior of either of these commands, because > they are both following the POSIX rules. > > If you want symmetry, omit the leading './', as in: > > $ mkdir -p a/b/c > $ rmdir -p a/b/c > >> >> 1) thinking either rmdir shouldn't generate an error or mkdir should >> >> mkdir -p a/../b # no error > > a needs to be created, > a/.. already exists, so it silently does nothing, > a/../b needs to be created > >> rmdir -p a/../b # error, but a & b removed > > a/../b needs to be removed, > a/.. needs to be removed, but you can't do that, > at this point, POSIX is fuzzy whether to attempt to remove 'a', or to > give up since 'a/..' was already an error; but obviously coreutils > removes 'a' What version of core-utils shows this behavior. In the latest one it's not removed AFAICS. - -- Reuti > >> >> 2) similar comment to above -- leading to: >> >> for rmdir, if "-p" is used, then as similar to "mkdir -p": >> (no error if existing, make parent directories as needed) >> >> rmdir -p should be >> "no error if dir not empty, but directories are followed >> and deleted as possible". > > Sadly, while that might be a nicer definition for 'rmdir -p', it doesn't > match the POSIX requirements nor the historical behavior, so we can't > really change it now. > > So I'm marking this as not a bug, as there is nothing to change. > > -- > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org > -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iEYEARECAAYFAlgGizIACgkQo/GbGkBRnRrB9ACgpbqqSW0ZF27H5nSKF97zrDth kLMAnRDKMmGxZ9p2SAqp/g+8AIkinqtU =ykPn -----END PGP SIGNATURE-----