Jim Meyering wrote: > > Thanks for the report. > However we'll need more information. > For example, what is the type of your destination file system? > If it's a local file system, "df -hT ." will tell you. > If it's NFS, it'd be good if you could tell us the OS of the server > as well as the type of disk it exports. > > What are the permissions of the source and destination files > and the destination directory? I.e., run this after the mv: > > ls -ld /tmp/a a . > > Also, please rerun your example under "truss", to see what system > calls are used i.e., > > rm -f a > truss -o log mv /tmp/a . > > and post the log. > > Caveat: Solaris 8 and 9 are on the way out, in my mind. > I haven't had access to those types of systems for at least > three years now, and that's a pretty serious impediment to > maintaining portability to them. >
Thanks for the reply. And, yes I agree Solaris 8 and 9 are on the way out, but unfortunately we're going to be stuck with them at work for some time to come yet. :( Anyway, here's the info you asked for. The destintation FS is a local FS: output from df -hT . Filesystem Type Size Used Avail Use% Mounted on /dev/md/dsk/d24 ufs 481M 209M 225M 49% /usr/home Full details of all permissions, before and after the move: root>rm -f a root>touch /tmp/a root> root>ls -ld /tmp /tmp/a . a ls: cannot access a: No such file or directory drwxr-xr-x 5 rleeden admin 8192 Feb 28 09:05 . drwxrwxrwt 11 root sys 4484 Feb 28 09:05 /tmp -rw-r--r-- 1 root other 0 Feb 28 09:05 /tmp/a root> root>mv /tmp/a . mv: preserving permissions for `./a': Invalid argument root> root>ls -ld /tmp /tmp/a . a ls: cannot access /tmp/a: No such file or directory drwxr-xr-x 5 rleeden admin 8192 Feb 28 09:05 . drwxrwxrwt 11 root sys 4355 Feb 28 09:05 /tmp -rw-r--r-- 1 root other 0 Feb 28 09:05 a root> And the truss output: execve("/usr/local/bin/mv", 0xFFBFF2FC, 0xFFBFF30C) argc = 3 resolvepath("/usr/lib/ld.so.1", "/usr/lib/ld.so.1", 1023) = 16 resolvepath("/usr/local/bin/mv", "/usr/local/bin/mv", 1023) = 17 stat("/usr/local/bin/mv", 0xFFBFF0C0) = 0 open("/var/ld/ld.config", O_RDONLY) = 3 fstat(3, 0xFFBFEB40) = 0 mmap(0x00000000, 132, PROT_READ, MAP_SHARED, 3, 0) = 0xFF3B0000 close(3) = 0 stat("/usr/local/lib/libintl.so.8", 0xFFBFEBC8) = 0 resolvepath("/usr/local/lib/libintl.so.8", "/usr/local/lib/libintl.so.8.0.2", 1023) = 31 open("/usr/local/lib/libintl.so.8", O_RDONLY) = 3 mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFF3A0000 mmap(0x00010000, 106496, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF380000 mmap(0xFF380000, 34770, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF380000 mmap(0xFF398000, 4364, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 32768) = 0xFF398000 munmap(0xFF38A000, 57344) = 0 memcntl(0xFF380000, 8240, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 close(3) = 0 stat("/usr/local/lib/libc.so.1", 0xFFBFEBC8) Err#2 ENOENT stat("/usr/lib/libc.so.1", 0xFFBFEBC8) = 0 resolvepath("/usr/lib/libc.so.1", "/usr/lib/libc.so.1", 1023) = 18 open("/usr/lib/libc.so.1", O_RDONLY) = 3 mmap(0xFF3A0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000 mmap(0x00010000, 802816, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF280000 mmap(0xFF280000, 703464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF280000 mmap(0xFF33C000, 24496, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 704512) = 0xFF33C000 mmap(0xFF342000, 6720, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFF342000 munmap(0xFF32C000, 65536) = 0 memcntl(0xFF280000, 117696, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 close(3) = 0 stat("/usr/local/lib/libgen.so.1", 0xFFBFEBC8) Err#2 ENOENT stat("/usr/lib/libgen.so.1", 0xFFBFEBC8) = 0 resolvepath("/usr/lib/libgen.so.1", "/usr/lib/libgen.so.1", 1023) = 20 open("/usr/lib/libgen.so.1", O_RDONLY) = 3 mmap(0xFF3A0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000 mmap(0x00010000, 98304, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF360000 mmap(0xFF360000, 22921, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF360000 mmap(0xFF376000, 2351, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 24576) = 0xFF376000 munmap(0xFF366000, 65536) = 0 mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF350000 memcntl(0xFF360000, 6372, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 close(3) = 0 stat("/usr/local/lib/libiconv.so.2", 0xFFBFEBC8) = 0 resolvepath("/usr/local/lib/libiconv.so.2", "/usr/local/lib/libiconv.so.2.4.0", 1023) = 32 open("/usr/local/lib/libiconv.so.2", O_RDONLY) = 3 mmap(0xFF3A0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000 mmap(0x00010000, 999424, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF180000 mmap(0xFF180000, 923279, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF180000 mmap(0xFF270000, 11152, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 917504) = 0xFF270000 munmap(0xFF262000, 57344) = 0 memcntl(0xFF180000, 12892, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 close(3) = 0 stat("/usr/local/lib/libsec.so.1", 0xFFBFEBC8) Err#2 ENOENT stat("/usr/lib/libsec.so.1", 0xFFBFEBC8) = 0 resolvepath("/usr/lib/libsec.so.1", "/usr/lib/libsec.so.1", 1023) = 20 open("/usr/lib/libsec.so.1", O_RDONLY) = 3 mmap(0xFF3A0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000 mmap(0x00010000, 90112, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF160000 mmap(0xFF160000, 9993, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF160000 mmap(0xFF174000, 982, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 16384) = 0xFF174000 munmap(0xFF164000, 65536) = 0 memcntl(0xFF160000, 2648, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 close(3) = 0 stat("/usr/local/lib/libc.so.1", 0xFFBFEBC8) Err#2 ENOENT stat("/usr/local/lib/libgcc_s.so.1", 0xFFBFEBC8) = 0 resolvepath("/usr/local/lib/libgcc_s.so.1", "/usr/local/lib/libgcc_s.so.1", 1023) = 28 open("/usr/local/lib/libgcc_s.so.1", O_RDONLY) = 3 mmap(0xFF3A0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000 mmap(0x00010000, 106496, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF140000 mmap(0xFF140000, 34112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF140000 mmap(0xFF158000, 3532, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 32768) = 0xFF158000 munmap(0xFF14A000, 57344) = 0 memcntl(0xFF140000, 6540, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 close(3) = 0 stat("/usr/lib/libdl.so.1", 0xFFBFEBC8) = 0 resolvepath("/usr/lib/libdl.so.1", "/usr/lib/libdl.so.1", 1023) = 19 open("/usr/lib/libdl.so.1", O_RDONLY) = 3 mmap(0xFF3A0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000 mmap(0x00010000, 8192, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF130000 mmap(0xFF130000, 2210, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF130000 close(3) = 0 stat("/usr/local/lib/libc.so.1", 0xFFBFEBC8) Err#2 ENOENT stat("/usr/local/lib/libc.so.1", 0xFFBFEBC8) Err#2 ENOENT stat("/usr/platform/SUNW,UltraSPARC-IIi-cEngine/lib/libc_psr.so.1", 0xFFBFE8C8) = 0 resolvepath("/usr/platform/SUNW,UltraSPARC-IIi-cEngine/lib/libc_psr.so.1", "/usr/platform/sun4u/lib/libc_psr.so.1", 1023) = 37 open("/usr/platform/SUNW,UltraSPARC-IIi-cEngine/lib/libc_psr.so.1", O_RDONLY) = 3 mmap(0xFF3A0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3A0000 munmap(0xFF3A4000, 16384) = 0 close(3) = 0 getustack(0xFFBFEF04) getrlimit(RLIMIT_STACK, 0xFFBFEEFC) = 0 getcontext(0xFFBFED38) setustack(0xFF3439B4) sysconfig(_CONFIG_STACK_PROT) = 3 brk(0x00046F70) = 0 brk(0x00048F70) = 0 stat("/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2", 0xFFBFE430) = 0 resolvepath("/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2", "/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2", 1023) = 52 open("/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2", O_RDONLY) = 3 mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFF120000 mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF110000 mmap(0x00010000, 90112, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF0F0000 mmap(0xFF0F0000, 14814, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF0F0000 mmap(0xFF102000, 8806, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 8192) = 0xFF102000 munmap(0xFF0F4000, 57344) = 0 memcntl(0xFF0F0000, 6824, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 close(3) = 0 munmap(0xFF120000, 32768) = 0 getuid() = 0 [0] ioctl(0, TCGETA, 0xFFBFF13C) = 0 stat64("a", 0xFFBFF1B8) Err#2 ENOENT lstat64("/tmp/a", 0xFFBFEF28) = 0 lstat64("a", 0xFFBFEE90) Err#2 ENOENT rename("/tmp/a", "a") Err#18 EXDEV unlink("a") Err#2 ENOENT open64("/tmp/a", O_RDONLY) = 3 fstat64(3, 0xFFBFEDF8) = 0 open64("a", O_WRONLY|O_CREAT|O_EXCL, 0600) = 4 fstat64(4, 0xFFBFED60) = 0 sysconfig(_CONFIG_PAGESIZE) = 8192 brk(0x00048F70) = 0 brk(0x0004CF70) = 0 read(3, 0x0004A000, 8192) = 0 futimesat(4, "", 0xFFBFEB90) = 0 facl(3, GETACLCNT, 0, 0x00000000) = 4 facl(3, GETACL, 4, 0x0004C418) = 4 facl(4, SETACL, 4, 0x0004C418) Err#22 EINVAL fchmod(4, 0100644) = 0 getuid() = 0 [0] getuid() = 0 [0] getgid() = 1 [1] getgid() = 1 [1] fstat64(2, 0xFFBFDBE0) = 0 write(2, " m v : ", 4) = 4 write(2, " p r e s e r v i n g p".., 30) = 30 write(2, " : ", 2) = 2 write(2, " I n v a l i d a r g u".., 16) = 16 write(2, "\n", 1) = 1 close(4) = 0 close(3) = 0 lstat64("/", 0xFFBFEFA8) = 0 fstatat64(-3041965, "/tmp/a", 0xFFBFEE48, 0x00001000) = 0 getuid() = 0 [0] fstatat64(-3041965, "/tmp/a", 0xFFBFEE48, 0x00001000) = 0 unlinkat(-3041965, "/tmp/a", 0x00000000) = 0 llseek(0, 0, SEEK_CUR) = 1046581 close(0) = 0 close(1) = 0 close(2) = 0 _exit(0) Thanks again for looking at this. Richard -- View this message in context: http://www.nabble.com/mv%3A-preserving-permissions-for-%60.-file%27%3A-Invalid-argument-tp22247790p22260140.html Sent from the Gnu - Coreutils - Discuss mailing list archive at Nabble.com. _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils