mike%cs1.wsu.edu@RELAY.CS.NET (Mike Kibler) (06/23/87)
I have been away from the net for a while, so I do not
know if this problem has already been solved.
SYSTEM: VAX 11/750 running 4.3 BSD
PROBLEM: A directory called bin was created with a '..' but not '.'.
Instead a directory file called 'old' which appears
to really be '.' is located in the bin directory.
A file system check of course reveals that the directory
is missing '.', but I have not been able to fix it using
fsck.
I tried an unlink ( fool!). Of course fsck just stuck it
under lost+found.
Rmdir cannot remove it because it finds 'old' located
in the directory.
Don't even think about doing a rm -r old. A little
recursive loop results.
Any way to get rid of this bad dir without remaking the
file system??
Please mail replys to my CSNET address. Thanks,
---- Mike ( Those who can, do. Those who can't simulate! )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Michael K. Kibler CSNET: mike%cs1.wsu.edu@RELAY.CS.NET
Computer Science Dept. UUCP: ..!ucbvax!ucdavis!egg-id!ui3!wsucshp!wsu!mike
Washington State Univ. BITNET: kibler@wsuvm1.BITNET
Pullman, WA. 99164-1210 PHONE: 509-335-2723 or 509-335-6636franco@MIKEY.BBN.COM (Frank A. Lonigro) (06/25/87)
Mike:
Just so I understand what your problem is I have
the following examples:
% pwd
/usr
% ls -lasg bin
total 15
1 drwxr-xr-x 16 franco system 1024 Jun 25 09:30 ..
14 drwxr-xr-x 1 franco system 1024 Dec 2 1986 old
% cd bin/old
% pwd
/usr/bin <---- I'm confused about this, you mentioned that
old seems to be dot. If this is so, then have you
tried this simple 'C' program?
main()
{
/* change the name of old to be dot */
rename("/usr/bin/old", "/usr/bin/.");
}
If that doesn't work you can try re-linking dot
back into bin like so:
main()
{
/* reconnect dot */
link("/usr/bin", "/usr/bin/.");
}
Of course if the rename doesn't work then you are stuck
with dot and old being the same. Maybe at this point
you can clear the inode of old with the 'clri' command
since dot and old should have different inodes. An
fsck should take care of the rest.
Good luck!!! If I happen to think of something else for you to try
I will let you know.....
franco%mikey.bbn.com@relay.cs.net
UUCP: through Harvard.rgoguen@MIKEY.BBN.COM (06/29/87)
Mike Write a 1 line C program relinking PATH -> PATH/. using the link(2) call You must be super user. Then remove the directory. Bob Goguen