Linux / UNIX: Display file inode (index number)

Posted on in Categories , , , , , , , , , last updated August 20, 2007

Q. How do I display file inode number using command line?

A. An inode is a data structure on a Unix / Linux file system. An inode stores basic information about a regular file, directory, or other file system object. You can use following two commands to display an inode:
[a] ls command : list directory contents

[b] stat command : display file or file system status

ls command

Type ls command with -i ( print the index number of each file ) option:
$ ls -i /etc/passwd
Output:

752010 /etc/passwd

752010 is index number (inode) for /etc/passwd file.

stat command

$ stat /etc/passwd
Output:

  File: `/etc/passwd'
  Size: 2026            Blocks: 8          IO Block: 4096   regular file
Device: 811h/2065d      Inode: 752010      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2007-08-20 23:19:20.000000000 +0530
Modify: 2007-07-07 00:06:56.000000000 +0530
Change: 2007-07-07 00:06:56.000000000 +0530

You can use inode number to delete or search a file.

Linux Rules for file names

Posted on in Categories , , , , , , , last updated August 15, 2007

Q. Can you specify rules for naming a file name under Linux?

A. When you save a data, you nee to select a file name, you need to follow certain rules and regulation regarding the length of the name and the types of characters you include.

Rules for naming file names

The rules for naming a file names under Linux (and UNIX like oses) are as follows:

[a] The file names can be up to 255 characters (or bytes) long

[b] You cannot use all special characters, try to use:
=> Uppercase or lowercase letters
=> Digits
=> Special characters, such as: +, -, _, .

[c] File names are case-sensitive. Thus, the following file names all are different:

vivek Vivek VIVEK VIVek

[d] Try to avoid non printable and following characters in filenames:
/, >, <, ?, “, ‘, blank space

How do I show hidden files?

Use ls -a or ls -la command:
$ ls -la
$ ls -a

Use -a to see invisible file names.

How do I access filenames with spaces?

To access a filename with spaces, enclose the filename in quotes:
$ cat "my bio data.txt"
$ cd "a long dir nane"

Please note that above rules almost apply to other UNIX like operating system such as HP-UX, Solaris, FreeBSD etc.

Examining the Linux / FreeBSD / UNIX filesystem with ls command

Posted on in Categories , , , , , , , , , , , , , last updated August 6, 2007

Q. I’m new to Linux and how do I examine filesystem and identify regular files or directories?

A. Both Linux and UNIX comes with ls command for examining the filesystem. You can use ls command to look at the filesystem. ls command can display:
=> Character devices
=> Regular files
=> Sym links (symbolic links)
=> Directories
=> Pipes
=> Sockets
=> Block devices

ls command examples

Display /etc directory files, enter:
$ ls /etc
When invoked without any arguments, ls lists the files in the current working directory:
$ ls
Use -l (long option) to lists filenames, sizes, permissions, type and all other information:
$ ls /etc/passwd
Output:

-rw-r--r-- 1 root root 2453 Jul 17 16:25 /etc/passwd

See Linux / UNIX file permissions for more information

Directory

A directory is marked with a d as the first letter of the permissions field:
ls -ld /etc
Output:

drwxr-xr-x 88 root root 12288 Aug  5 23:46 /etc

Symbolic link

A symbolic link is marked with an l (lower case L) as the first letter of the permissions string:
ls -l /bin/nisdomainname
Output:

lrwxrwxrwx 1 root root 8 Jul 10 08:50 /bin/nisdomainname -> hostname

Similarly,

  • A named pipe is marked with a p as the first letter of the permissions string.
  • A socket is marked with a s as the first letter of the permissions string.
  • A character device is marked with a c as the first letter of the permissions strings. (ls -l /dev/console)
  • A block device is marked with a b (ls -l /dev/sdb1).