首页 > 代码库 > 文件类型与链接

文件类型与链接

文件类型包含普通文件、目录、字符设备文件、块设备文件

 -type c

              File is of type c:

              b      block (buffered) special **

              c      character (unbuffered) special

              d      directory *****

              p      named pipe (FIFO)

              f      regular file *****

              l      symbolic link; this is never true if the  -L

                     option  or  the -follow option is in effect,

                     unless the symbolic link is broken.  If  you

                     want to search for symbolic links when -L is

                     in effect, use -xtype. ***

              s      socket

              D      door (Solaris)

查看文件类型:

[root@wuyike ~]# file /etc/profile

/etc/profile: ASCII English text

[root@wuyike ~]# file /bin/cp

/bin/cp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

[root@wuyike ~]# file /var/log/wtmp

/var/log/wtmp: data


[root@wuyike ~]# ll /var/log/wtmp /bin/cp /etc/profile 

-rwxr-xr-x. 1 root root 122872 10月 15 2014 /bin/cp

-rw-r--r--. 1 root root   1796 10月  2 2013 /etc/profile

-rw-rw-r--. 1 root utmp  21888 4月  15 01:57 /var/log/wtmp


创建字符设备

[root@wuyike ~]# mknod wuyike c 5 1

[root@wuyike ~]# ll

总用量 16

-rw-r--r--. 1 root root   31 3月   3 08:15 awk.txt

drwxr-xr-x. 6 root root 4096 3月   3 19:35 data

-rw-r--r--. 1 root root    7 3月   4 03:00 test.txt

crw-r--r--. 1 root root 5, 1 4月  16 10:50 wuyike

-rw-r--r--. 1 root root   30 3月   4 18:51 wuyike.txt

-rw-r--r--. 1 root root    0 3月   4 18:51 吴宜珂.txt


技术分享

链接:

用ln创建链接文件

ln 源文件 目标文件(创建硬链接)

ln -s 源文件 目标文件(创建软链接)

硬链接是指通过索引节点(iNode)来进行链接的。在Linux ext2、ext3、ext4文件系统中,保存在磁盘分区中的文件不管是什么类型都会分配发给他一个编号,这个编号被称为索引节点(Index INode)。

硬链接文件就相当于文件的另外一个入口。硬链接的作用之一是允许一个文件拥有多个有效路径名(多个入口),这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件存储,如netapp存储中的快照功能就应用了这个原理,增加了一个快照就多了一个硬链接)。原因:

技术分享



文件删除控制的变量:

i_link 文件的硬链接数量

i_count 引用数量(有一个程序使用i_count加1)

文件删除的条件:

i_link=0 and i_count=0(进程shut down,链接全部删除)


1、被进程占用的文件能不能删?能

2、如何查看文件是否被进程占用,或者查看i_count?

3、如何找回没有链接指向但是被进程占用的文件?






fdisk -l:可以查看新增的磁盘

tune2fs -c -1 /dev/sdb

mkdir /app/log -p

mount -t ext4 -o defaults /dev/sdb /app/log


[root@wuyike log]# df -i

Filesystem     Inodes IUsed  IFree IUse% Mounted on

/dev/sda3      610800 80822 529978   14% /

tmpfs          125543     1 125542    1% /dev/shm

/dev/sda1       51200    38  51162    1% /boot

/dev/sdb        26208    11  26197    1% /app/log


[root@wuyike log]# for n in `seq 26220`;do touch stu$n;done

touch: 无法创建"stu26198": 设备上没有空间

touch: 无法创建"stu26199": 设备上没有空间

touch: 无法创建"stu26200": 设备上没有空间

touch: 无法创建"stu26201": 设备上没有空间

touch: 无法创建"stu26202": 设备上没有空间

touch: 无法创建"stu26203": 设备上没有空间

touch: 无法创建"stu26204": 设备上没有空间

touch: 无法创建"stu26205": 设备上没有空间

touch: 无法创建"stu26206": 设备上没有空间

touch: 无法创建"stu26207": 设备上没有空间

touch: 无法创建"stu26208": 设备上没有空间

touch: 无法创建"stu26209": 设备上没有空间

touch: 无法创建"stu26210": 设备上没有空间

touch: 无法创建"stu26211": 设备上没有空间

touch: 无法创建"stu26212": 设备上没有空间

touch: 无法创建"stu26213": 设备上没有空间

touch: 无法创建"stu26214": 设备上没有空间

touch: 无法创建"stu26215": 设备上没有空间

touch: 无法创建"stu26216": 设备上没有空间

touch: 无法创建"stu26217": 设备上没有空间

touch: 无法创建"stu26218": 设备上没有空间

touch: 无法创建"stu26219": 设备上没有空间

touch: 无法创建"stu26220": 设备上没有空间

[root@wuyike log]# touch dd

touch: 无法创建"dd": 设备上没有空间

[root@wuyike log]# df -i

Filesystem     Inodes IUsed  IFree IUse% Mounted on

/dev/sda3      610800 54600 556200    9% /

tmpfs          125543     1 125542    1% /dev/shm

/dev/sda1       51200    38  51162    1% /boot

/dev/sdb        26208 26208      0  100% /app/log



























文件类型与链接