[PATCH] adding two new options to 'cp'
Eric Anderson
anderson at centtech.com
Mon Jul 31 17:42:00 UTC 2006
On 07/31/06 12:28, Rick C. Petty wrote:
> On Mon, Jul 31, 2006 at 05:47:09PM +0200, Juan Rodriguez wrote:
>> My GNU version of "cp" has more than 18 options, the FreeBSD
>> version only has 9.
>>
>> As I usually work with Linux machines, I'm used to "cp -a" and I have always
>> hated to have to look up in the FreeBSD's "cp" manual page for the right
>> options to get the same funtionality. I tend to think
>> that "-a" is option bloating because it's not really needed, but I see
>> "-l" as a new feature for "cp" that might be useful.
>
> I agree, -a is bloat. However I don't understand why you say:
>
>> To sum it up, I think "cp -a" and "cp -l" are both useful,
>
> I agree that the "-l" option *may* be useful.
>
>> the first one
>> because of compatibility with the large base of Linux systems out there, and
>> the second one because I think it's a useful feature for the FreeBSD "cp".
>
> In both cases, why don't you just use:
>
> /usr/compat/linux/bin/cp
Two reasons - it's not in the base system, so a port has to be installed
- and linux_base is FC3 now, so if you want to talk about bloat...
Another reason is gcp fails to recursively copy a directory that has
symlinks in it.
Example:
$ cd /tmp/
$ mkdir test
$ touch test/t
$ ln -s t test/b
$ ls -al test/
drwxr-xr-x 2 anderson wheel 512 Jul 7 09:39 .
drwxrwxrwt 69 root wheel 8704 Jul 7 09:39 ..
lrwxr-xr-x 1 anderson wheel 1 Jul 7 09:39 b -> t
-rw-r--r-- 1 anderson wheel 0 Jul 7 09:39 t
$ gcp -al test/ test2/
$ ls -al test2/
drwxr-xr-x 2 anderson wheel 512 Jul 7 09:39 .
drwxrwxrwt 70 root wheel 8704 Jul 7 09:40 ..
-rw-r--r-- 3 anderson wheel 0 Jul 7 09:39 b
-rw-r--r-- 3 anderson wheel 0 Jul 7 09:39 t
( you can see it made a resolved the symlink and made a hardlink to the
symlink destination, not exactly what I would want, but didn't fail)
However, now do:
$ ln -s /tmp/ test/link-to-dir
$ ls -al test/
drwxr-xr-x 2 anderson wheel 512 Jul 7 09:43 .
drwxrwxrwt 70 root wheel 8704 Jul 7 09:40 ..
lrwxr-xr-x 1 anderson wheel 1 Jul 7 09:39 b -> t
lrwxr-xr-x 1 anderson wheel 5 Jul 7 09:43 link-to-dir -> /tmp/
-rw-r--r-- 3 anderson wheel 0 Jul 7 09:39 t
$ gcp -al test/ test2/
gcp: cannot create link `test2/test/link-to-dir': Operation not permitted
gcp gets an error when copying symlinks that point to directories.
Eric
--
------------------------------------------------------------------------
Eric Anderson Sr. Systems Administrator Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------
More information about the freebsd-hackers
mailing list