Behaviour in the presence of links (junctions, symlinks, ...

Here you can propose new features, make suggestions etc.

Moderators: Hacker, petermad, Stefan2, white

Post Reply
kovesp
Junior Member
Junior Member
Posts: 6
Joined: 2009-11-30, 12:48 UTC
Location: Toronto

Behaviour in the presence of links (junctions, symlinks, ...

Post by *kovesp »

Currently I don't see a way of preventing TCMD from descending into linked directories. In particular, when I have a structure like this:

Code: Select all

C:\Drives\
   C->C:\
   E->E:\
then an infinite recursion results on a search. Yes I know, that there is a way to search only selected directories. but that would be tedious in this case.

I am requesting a "follow links" check box in the search dialogue (and possibly also the copy/move dialogue and perhaps others that I can't think of right now) to control this. This is the better solution, but if this is too much to ask, then I am also OK with a global option setting or menu command.
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Post by *Balderstrom »

Although recursion prevention could be useful, a global [x] don't parse junctions option would be less so.

I'd much rather see improvement to the IgnoreList functionality -- but I wont derail this thread with that detail.
kovesp
Junior Member
Junior Member
Posts: 6
Joined: 2009-11-30, 12:48 UTC
Location: Toronto

Post by *kovesp »

Although recursion prevention could be useful, a global [x] don't parse junctions option would be less so.
Oh, I agree completely! I was just thinking that even a global option is better than nothing as a last resort, and is easier to implement than having to modify a large set of dialogue boxes.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

You should check for recursions yourself if you're using junctions. BTW, in TC search dialog you may see "Search in subdirectories:" combo box where you may limit search depth - it will protect from infinite loops caused by reparse points.

BTW I don't see any reason to create junctions and to ignore them while searching later.
User avatar
X-Byte
Member
Member
Posts: 173
Joined: 2004-11-29, 09:34 UTC
Location: Hessen, Germany

Post by *X-Byte »

I support the suggested option "[x] don't parse junctions", but separately for the search, copy and move (?) dialog.

Comes in handy, if you have symlinked big archive harddisks into your "normal" harddisk structure and you want to ignore them, while searching the rest.
kovesp
Junior Member
Junior Member
Posts: 6
Joined: 2009-11-30, 12:48 UTC
Location: Toronto

Post by *kovesp »

MVV wrote:BTW I don't see any reason to create junctions and to ignore them while searching later.
Depends on what you are doing. The structure I created above is for accessing multiple drives from a different machine (c:\Drives is shared).

In some cases I want to search for stuff on the drive without recursion, traversal to other drives, or getting multiple hits for the same files.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

kovesp wrote:In some cases I want to search for stuff on the drive without recursion, traversal to other drives, or getting multiple hits for the same files.
You may use special ignore list for such operation. Currently TC doesn't support internal command to change ignore list but you may use some external tool to change corresponding INI parameter and switch ignore list off and on then using command cm_SwitchIgnoreList - TC will use new ignore list. After searching you may switch ignore list back.
kovesp
Junior Member
Junior Member
Posts: 6
Joined: 2009-11-30, 12:48 UTC
Location: Toronto

Post by *kovesp »

MVV wrote:Currently TC doesn't support internal command to change ignore list but you may use some external tool to change corresponding INI parameter and switch ignore list off and on then using command cm_SwitchIgnoreList - TC will use new ignore list. After searching you may switch ignore list back.
Hmm... So first I write (say) a Perl script to find all the links on the volume (these do change after all). Then the script changes the ini file.
Now I can search in TCMD. The disk has been traversed twice. I might as well write the Perl script itself to do the search. Or just use the unix (cygwin) find command which supports the "don't traverse links" function.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

You may keep ignore list between searches - I don't think you so frequently add new junctions - so you don't need to change it before each search. :wink:
kovesp
Junior Member
Junior Member
Posts: 6
Joined: 2009-11-30, 12:48 UTC
Location: Toronto

Post by *kovesp »

True. But will I remember that I've changed the links? No: senility is setting in ... :?
Post Reply