Do you mean how to list the directory entries with only the inode number?

I mean, if you just want to see the inodes in a directory listing,
something like:
$ ls -i | cut -d' ' -f 1

Will do the trick. But you need a dirname to pass to open.

You can use the -inum option to find to operate on a file by inode
number, but that is just a notation. Find actually finds the file by
name, and then only operates on it if the inum matches the given argument.

The machine finds the file under the current directory with the inode of 4391 and executes a cat against the found list. Change cat to ls -ld or something similar and it will show the file name. Is that what you are looking for?

However, the file name is INVISIBLE because it consists entirely of white space.

First, find out what it is called using the "show all characters" option in ls. (Might be -G or -v, so check your system's manual.)

Then, if it is typeable, you can use it in quotes. It might show up as "\t" or " " ot ^J or some other ASCII representation. Probably best just to rename it, using mv " " "Visible.txt, and then you can view, delete, copy it or whatever.

If the name is untypeable (maybe it contains nulls or newlines) you might be able to select on it by length. For example, if it is the only file in the directory that is two characters long, then

mv ?? Visible.txt ## should rename it.

Or some other pattern might match it, like:

mv [!A-Za-z]? Visible.txt.

If you can report the name graphically in ls -l and post it, I can figure a better match.

IMHO the find construction perfectly fits to the case ! But I was also guessing that best is to rename the file first and then work with it using simple standard tools. Now I can see why I didn't post it - Paul's answer is much much better as usually ;-)
May be it is not necessary to much thinking about "damaged" filename and just to use no/yes answers in the mv command used with the -i switch:

touch new_name_of_file # important !!!
mv -i * new_name_of_file

If there is too much files in the current directory then use of some pattern can help, like

Good point with "find". The last time we went round this subject, the issue was that the filename started with "-", so find with an inode still ran rm with a "-xxx" argument, which was misinterpreted as an option by rm.

If find does its own process control (rather than just "system" the -exec args), there is a good chance that {} will really be the raw filename string when find does execlp("mv", ...) and it would actually work in this case.

I'd forgotten that mv has the -i option for just this case. In the very old days, it seems to me that the only way to rm a bad file was to mv it to a valid name first, and that "rm -i" is a retrofit.

The easy way to determine the length of the invisible filename (from 0 up) is: