[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Directory overwriting



Rodolfo Medina wrote:

>> When I copy a file into the present directory, with:
>> 
>>  $ cp /path/to/file .
>> 
>> , if the file already exists it is overwritten, i.e. the `old one'
>> is removed and the `new one' takes its place.
>> Instead, with directories it is not the same:
>> when I do:
>> 
>>  $ cp -vr /path/to/dir .
>> 
>> , if the directory already exists it is not removed, but the new one
>> just adds files to the old one.
>> 
>> Would it be possible, and how?, to have with directory overwriting
>> the same behaviour we have with file overwriting?


Roberto C. Sanchez wrote:

> You could probably write a script to "replace" the current cp command:
>
> #!/bin/bash
>
> if [ -d $3 ] ; then
>  /bin/rm -rf $3
> fi
>
> /bin/cp $1 $2 $3
>
> Of course, you will need to handle the command line parameters more
> intelligently (this script only handle one clump of switches).



Digby Tarvin <digbyt@acm.org> writes:

> [...]
>
> For example, a script to do this might be something like
> 	#!/bin/sh
> 	if [ "$#" != "2" ] ;then
> 	    echo "Usage: cpdir <src> <tgt>"
> 	    exit 1
> 	fi
> 	DIRNAME=`basename $1`
> 	if [ -r $2/$DIRNAME ] ;then
> 	    rm -r $2/$DIRNAME
> 	fi
> 	cp -rv $1 $2
>
> With this, the args from your original example:
> 	$ cpdir /path/to/dir .
>
> would result in a directory called 'dir' in '.' containing the
> same information as the original - if that is what you wanted..



Thanks for your replies.
I'll be trying your suggestions.

Cheers,
Rodolfo



Reply to: