[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
diff -r is not flexible in handling symlinks
From: |
dworley |
Subject: |
diff -r is not flexible in handling symlinks |
Date: |
Tue, 23 Apr 2002 10:10:23 -0400 |
While attempting to use 'diff' to compare my Linux filesystem with a
replica of it, I discovered that diff -r always follows symlinks.
This was not useful, because my filesystem contained a symlink "SRC ->
..", which caused diff to get into an infinite loop.
I believe that this is a common problem, because many Unix system file
structures (and some software packages) contain links like "mh -> ."
and "SRC -> ..". Gnu 'cp' has been designed to be flexible about
handling symlinks, and cp -r does not follow symlinks by default:
File: fileutils.info, Node: Top, Next: Introduction, Up: (dir)
This manual documents version 4.0.36 of the GNU file utilities.
[...]
By default, `cp' follows symbolic links only when not copying
recursively. This default can be overridden with the
`--no-dereference' (`-d'), `--dereference' (`-L'), and `-H' options.
If more than one of these options is specified, the last one silently
overrides the others.
`-d'
`--no-dereference'
Copy symbolic links as symbolic links rather than copying the
files that they point to, and preserve hard links between source
files in the copies.
`-L'
`--dereference'
Always follow symbolic links.
`-H'
If a command line argument specifies a symbolic link, then copy the
file it points to rather than the symbolic link itself. However,
copy (preserving its nature) any symbolic link that is encountered
via recursive traversal.
I believe that the utility of diff would be significantly enhanced if
its treatment of symlinks was made the same as cp's.
Dale
- diff -r is not flexible in handling symlinks,
dworley <=