在Linux操作系统中,每个文件和目录都有一组关联的属性,这些属性定义了文件的权限和所有权。这些属性可以通过使用?ls -l?
命令在终端中查看,这会列出文件或目录的详细信息。
~]# ls -l
total 72
-rw-r--r--. 1 root root 86681 Jan 19 15:20 file.txt
第一列的第一个字符:文件类型(详情见以下 文件类型 )
rw-r--r--:文件权限
".":文件带有 SElinux 相关的权限。开启 SElinux的时候创建文件会有 "."?,关闭SElinux后创建文件不会有 "."
1:被硬链接的次数
root:文件的拥有者(用户)
root:文件的拥有组(用户组)
86681:文件大小
Jan 19 :最后一次修改文件日期
15:20:最后一次修改文件时间
file.txt:文件名称
~]# ll -d /etc/hosts /tmp /bin/ls /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log
-rwxr-xr-x. ?1 root root 117608 Nov 17 ?2020 /bin/ls
srw-rw-rw- ? 1 root root ? ? ?0 Jan 19 15:01 /dev/log
brw-rw---- ? 1 root disk ? 8, 0 Jan 19 15:01 /dev/sda
crw--w---- ? 1 root tty ? ?4, 1 Jan 19 15:01 /dev/tty1
lrwxrwxrwx. ?1 root root ? ? 22 Jan 16 10:29 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. ?1 root root ? ?158 Jun ?7 ?2013 /etc/hosts
drwxrwxrwt. 16 root root ? 4096 Jan 19 15:04 /tmp
-:普通文件
s:socket,套接字文件
b:块设备,比如硬盘、光盘、磁盘分区
c:字符设备,接受输入输出
l:链接文件,软链接、硬链接
d:目录文件
当我们对于一些文件无法精准的区分类型的时候可以使用 file 命令来查看。
~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=c8ada1f7095f6b2bb7ddc848e088c2d615c3743e, stripped
~]# file /dev/log
/dev/log: socket
~]# file /dev/sda
/dev/sda: block special
~]# file /dev/tty1
/dev/tty1: character special
~]# file /etc/grub2.cfg
/etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg'
~]# file /etc/hosts
/etc/hosts: ASCII text
~]# file /tmp/
/tmp/: sticky directory
在 Linux 系统中,链接文件是指向另一个文件的引用。Linux支持两种类型的链接:硬链接和软链接。
硬链接:
软链接:
#创建硬链接
ln source_file hard_link
#创建软链接
ln -s source_file soft_link
在Linux文件系统中,索引节点号(inode number)是文件系统分配给每个文件和目录的唯一标识符。每个文件或目录在其所在的文件系统中都有一个与之对应的索引节点(inode),它存储了文件的元数据,但不包括文件名或实际数据内容。inode包含了许多关于文件的重要信息,如:
#查看文件或目录的索引号
~]# ls -i anaconda-ks.cfg
67145795 anaconda-ks.cfg