13

I saw the man page of test.

where the below is mentioned.

-e  pathname
    True if pathname resolves to a file that exists. False if pathname cannot be resolved.
-f  pathname
    True if pathname resolves to a file that exists and is a regular file. False if pathname cannot be resolved, or if pathname resolves to a file that exists but is not a regular file.

the -f flag says True if pathname resolves to a file that exists and is a regular file Could anybody please tell what is a regular file and what is not a regular file.

Vijay
  • 65,327
  • 90
  • 227
  • 319

3 Answers3

11

Non-regular files are devices, pipes, sockets... try [ -f /dev/tty0 ], for example. Symlinks are also non-regular, but they're resolved by test -f.

Costi Ciudatu
  • 37,042
  • 7
  • 56
  • 92
10

They're text or binary data, called 'regular files' to distinguish them from other types like directories, symbolic links, sockets etc.

Take a look at http://en.wikipedia.org/wiki/Unix_file_types

strmqm
  • 1,274
  • 1
  • 9
  • 17
3

It is not a directory, device file, block device, FIFO or socket. If you do an ls -l. The ones which start with a "-" are the files. Actually what most people to refer as just a file.

Bjorn
  • 941
  • 9
  • 18