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..
I tried Digby's script and it seems to work fine.
I also did something similar for `mv':
-----------------------------------
#!/bin/sh
if [ "$#" != "2" ] ;then
echo "Usage: mvdir <src> <tgt>"
exit 1
fi
if [ -r $2 ] ;then
rm -r $2
fi
mv $1 $2
-----------------------------------
, and it also seems to work fine.
Thanks,
Rodolfo
P.S.: Could you suggest a place where to learn
to handle with this kind of syntax?
Reply to: