I've seen a few different questions about ls hanging.  It's usually because they use the -l switch, which causes a stat on the file, which in turn is a bad symlink or pointing to an NFS mount or some such.I have a local file (in an old copy of the Git source that somebody else unpacked, of all things) that causes stat to hang, but responds to CTRL-C.  It also causes ls -l to hang, hard, such that it does not respond to kill (but does terminate on a kill -9).It's not a symlink.  The other files in the directory appear to stat without issue.  I've recently rebooted the machine with forced fsck, which came out clean, and dmesg shows no disk-related messages.  How can this be?
Local, regular file causes `stat` or `ls -l` to hang
ls;freeze;stat
It may be a problem in getting the user name or group name, if you use and LDAP or NIS or other sources for that. What are you passwd and group lines in /etc/nsswitch.conf? This may be the case if an ls -nl return immediately.