Well, it's interesting but confusing. And in any case, I need a book because six months from now I won't remember anything that went on in this thread :)
I'm wondering if the desktop "shortcuts" that you can create in X are traditional links, or a more complex link with differences? On Mar 3, 11:36 pm, Blues Renegade <[email protected]> wrote: > Thanks for the clarification, Daniel! Why use hard links at all? They > must exist for a reason, but I have yet to encounter a need that ONLY a > hard link could fill. In commercial UNIX apps I've installed I've only > ever seen soft links used by the software vendor, never hard links. What > am I missing here? > > Thanks again, Daniel! Despite my error on hard links, I do hope DOS-MAN > got something out of all I wrote on soft links, or I wasted my time. > > John > > > > Daniel Eggleston wrote: > > An important point that should be made: a link is always a link, and > > never a copy! A hard link is not a copy. A hard link is a duplicate > > inode pointer, so both are "real" files. i.e.: > > > $ echo "foo" > fileA > > $ ln fileA fileB > > $ ln -s fileA fileC > > $ cat file B > > foo > > $ echo "bar" > fileA > > $ cat fileB > > bar > > $ cat fileC > > bar > > $ rm fileA > > $ cat fileB > > bar > > $ cat fileC > > *error* > > > The difference between a hard link and a soft link is, the soft link > > points to a file by name. A hard link points by inode, so after you > > remove the original file, it still exists with the second filename. > > But they're not separate copies, they're the same file! > > > On Wed, Mar 3, 2010 at 7:32 AM, Blues Renegade > > <[email protected] <mailto:[email protected]>> wrote: > > > I think you're making it much harder for yourself by mentally > > cross-referencing everything in Linux back to your DOS/Windows > > knowledge. You'll have a much easier time if you "forget" about > > DOS/Windows and approach Linux like a kid learning about computers > > for the first time. > > > When I first got into Linux, I decided to go back to where Linux > > came from and picked up some old UNIX books where everything was > > done on the command line, they didn't even have an X-server yet, > > and to this day, most UNIX server admins run a console-system > > only, no GUI! Most would never dream of using a GUI, seeing it as > > a headache; more programs and config files to break and wreak > > havoc on the server's stability. > > > As for links, they are fairly straightforward. There are 2 kinds: > > hard links and soft links. > > > A hard link is actually just a copy of a file. Personally, I have > > never used hard links. I use cp -a (-a archives a file with its > > original date/time and preserves ownership and permissions) if I > > want to duplicate files. > > > A soft link is a shortcut to a file; under the covers it's nothing > > more than a pointer that contains the path to where the file exists. > > > IMPORTANT! The path it stores is the text you enter when you > > create the link. The ln command does NOT try and validate your > > path. The UNIX/Linux philosophy is that commands are small > > programs with a very specific purpose. If you want/need more > > functionality, then you are expected to combine the commands using > > piping and/or redirection to get the job done. Once you learn > > enough commands and know how to combine them, the light bulb will > > go on and you'll realize the true power of UNIX (in our case, Linux). > > > CREATING LINKS: > > > For example, you're in your home directory and you want a quick > > way to 'cd' to a /home/dos-man/programming/c/linux/utilities. > > > Here's a FLAWED WAY of creating a soft link... I'm showing you a > > pitfall first: > > > ln -s ./programming/c/linux/utilities/ c-utils > > > ln = link command > > > -s = soft link (shortcut, pointer, stored path, however you want > > to remember it) > > > ./programming/c/linux/utilities = a relative path (relative > > reference) to the directory utilities > > > The period at the beginning points to the current directory. (Not > > very exact is it?!) > > > c-utils = the filename of your link (shortcut) i.e. this is what > > you'll use with cd to save typing that long path > > > You're working away in /home/dos-man/programming/c/dos/ and you > > decide to go work on a linux utility, so you run: > > > cd c-utils > > > and surprise, it fails! > > > What it does is try to cd from your current directory to your > > link's path. The cd command replaces the period in the link with > > your current directory and tries to change to the new "fangled" > > (mangled is more like it) path: > > > It's as though you entered: > > > cd /home/dos-man/programming/c/dos/programming/c/linux/utilities/ > > > No such path exists on your system (and if by chance it does, then > > you're not where you expect to be!!). > > > **** TIP: When creating softlinks, include the complete path (AKA > > absolute reference). > > > To fix the problem above, rm c-utils to remove the link you created. > > > Re-create it with the complete path this time (an absolute reference). > > > ln -s /home/dos-man/programming/c/linux/utilities/ c-utils > > > **** TIP: It's a good idea to include the trailing slash when > > creating links to directories, so when you look at the link with > > 'ls -l', you'll know it's pointing to a directory. > > > Hope that helps you to start using links right away. > > > BEST TIP OF ALL: Forget registries, forget Windows, forget DOS, > > and you'll have a much easier time learning Linux!! Start fresh; > > after all, UNIX came first, then MS-DOS borrowed heavily from UNIX > > and ended up as a very watered down proprietary sub-set with some > > subtle (proprietary?). > > > Many of the commands in UNIX were never replicated in DOS, so they > > will be completely new to you. New concepts and ways of thinking > > to grasp. While DOS had piping and redirection, without a rich > > command set you were still very limited in comparison to UNIX. > > > John- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Linux Users Group. To post a message, send email to [email protected] To unsubscribe, send email to [email protected] For more options, visit our group at http://groups.google.com/group/linuxusersgroup
