Stephen Howe wrote:
| Could v11 support something in DIR, PDIR and/or ATTRIB so it is
| possible to see hardlink and softlink files (and possibly (P)DIR /A:
| so that they can be filtered in/out)?
| It is not easy to be sure of what files are
| normal files
Hard linked files were identifiable since V6 via @inode ( and @links to know
how many directory entries for the same file). There is no possible way to
"filter them out" if by this you mean to list them by only one of their
directory entries (and this is also true for *nix file systems), because
once two or more directory entries reference the same file body, those
directory entries are totally equivalent, so the only way to distinguish
"normal files" from "hard linked files" is via @links - and the same is true
in *nix file systems.
I would consider a file filtering option of @links=1 or @links>1 a nice
feature, however, there may be a major performance penalty. The *nix FS
stores only one piece of information about a file in the local directory,
its "inode" identification; all other properties of the file are stored in
the "inode" (timestamps, size, attributes, ownership, link count, etc.).
AFAIK NTFS stores most of the above file properties in the (extended)
directory entry, but the link count and the inode identifier may be
somewhere else. This results in delayed updates of hard linked files'
properties in all entries except the one explicitly handled. In particular,
I wanted to avoid a backup procedure to copy a hard linked files' body more
than once, using the automatic update of the A attribute, and filtering on
the A attribute; did not prevent multiple copies being generated - the
attribute update was delayed beyond accessing the file by alternate names.
"Soft linked" files (cf. soft linked directories = symbolic links =
junctions ) are a different story, and having an OS which does not support
them (WinXP SP3), even though the file system (NTFS) itself does, I have no
experience with them in the MS world. Did you try using the attribute L
(link) or J (junction) in an attribute selection switch, e.g., /a:j-d ?
| Essentially I am arguing that invisible things (like hidden streams)
| are made visible in the interface.
Do you want invisible things to become visible, or do you want to keep them