By John Gruber
Enterprise-class Mac hosting infrastructure on genuine Apple hardware. Learn more.
Sunday I suggested that the Finder, when replacing one item with another, ought to move the replaced item to the Trash instead of deleting it.
The only problem I foresaw was with alias resolution: that because the Mac OS Alias Manager tracks an alias’s target first by file ID, and only second by path, aliases would still point to the old item that was moved to the Trash, rather than the new replacement file. I suggested that the Alias Manager could be updated to work around this.
But it ends up that the Alias Manager changed in Jaguar, such that it has already solved the problem I’m talking about. Unlike previous versions of Mac OS, aliases are now resolved by path first, file ID second. I’m not sure if this debuted in 10.2.0, or one of the 10.2.x updates, but it’s definitely there in 10.2.4. You can see for yourself:
Make a file on your desktop named “test”.
Make an alias to “test”. Select the alias and use the File → Show Original command (Cmd-R) to prove the alias works.
Move “test” to the Trash.
Select the alias and choose Show Original again. It still points to “test”, even though it is in the Trash.
Make a new file named “test”, and put it on your desktop.
Select the alias and choose Show Original again. It now points to the new file named “test”, even though the original target is still in the Trash.
In all previous versions of Mac OS, the alias would point to the original target in the Trash until it was deleted. This new behavior is different, but I think it’s a decided improvement, in that “the right thing” will happen more often than before when you have aliases pointing to an item that you replace.
It also means that it should be a little bit easier than I thought for Apple to change the Finder to move replaced items to the Trash instead of deleting them.