GNU bug report logs - #5926
feature request: mv -p to create missing target dir

Previous Next

Package: coreutils;

Reported by: Rodolfo Borges <rodolfo.borges <at> gmail.com>

Date: Sun, 11 Apr 2010 14:10:02 UTC

Severity: wishlist

Done: Bob Proulx <bob <at> proulx.com>

Bug is archived. No further changes may be made.

Full log


Message #25 received at 5926 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: 5926 <at> debbugs.gnu.org
Cc: Rodolfo Borges <rodolfo.borges <at> gmail.com>, bob <at> proulx.com
Subject: Re: bug#5926: feature request: mv -p to create missing target dir
Date: Sun, 25 Apr 2010 15:29:34 +0200
Just a few obsevations on side issues...

Bob Proulx writes:
> Rodolfo Borges wrote:
>
> > cat <<EOF >> ~/.bashrc
> > function mv() {
> >     local target="${!#}"
> >     local dir
> >     if [[ "$target" =~ '/$' ]]; then
> >         dir="$target"
> >     else
> >         dir="$(dirname "$target")"
> >     fi
> >     test -d "$dir" || mkdir -vp "$dir"
> >     $(which mv) "$@"
> > }
> > EOF
> 
> Very good!  I see that you have a solution to your problem.
> 
> As a side comment I don't see the point of:
> >     $(which mv) "$@"
I think that's needed because otherwise the shell function would end 
up calling itself recursively, since it's named `mv' too.

> The 'which' command is another one of those simple but not very
> portable commands that does different things on different systems. 
Since Rodolfo is assuming bash as his shell, he could have used:
  $(type -P mv) "$@"
instead, which is more "portable" because it just uses bash builtins.

> In the simple case of reporting where the command is found on PATH
> the use here is redundant since the command would otherwise simply
> be found on PATH.
>   mv "$@"
No, this would call the `mv' function, since shell functions take 
precedence over external commands in bash.

Regards,
     Stefano




This bug report was last modified 10 years and 218 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.