Linux文件类型(学习笔记六)
一、Linux下的文件类型
- 普通文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ - ]
- 目录文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ d ]
- 设备文件:一般都在dev目录,有[b][c]
二、普通文件
2.1、文本文件
以ASCII码形式存储在计算机中
2.2、二进制文件
以文本的二进制形式存储在计算机中,如声音,图像等,只有通过相应的软件才能将其显示出来
2.3、连接文件
就是类似 Windows 底下的快捷方式啦!第一个属性为 [ l ];
三、目录文件
设计目录文件的主要目的是用于管理和组织系统中的大量文件,它存储一组相关文件的位置,大小与文件 有关的信息目录文件简称目录
四、设备文件
设备文件是Linux系统很重要的一个角色,Linux把每个I/O设备看成一个文件,与普通文件一样处理,这样可以使用文件 与设备的操作尽可能统一,从用户角度来看,对I/O设备的使用和一般文件使用一样,用户不必了解I/O细节,
设备文件又为块设备、和字符设备
4.1、块设备
成块读取数据的设备,硬盘,内存等 就是一些储存数据,以提供系统存取的接口设备,简单的说就是硬盘啦!
例如你的一号硬盘的代码是 /dev/hda1 等等的文件啦!第一个属性为 [ b ]
4.2、字符设备
亦即是一些串行端口的接口设备,例如键盘、鼠标等等!第一个属性为 [ c ]。
五、文件相关的一些命令
5.1、touch
创建新文件
touch /data/text.txta ls /data 查看 或者进入/data目录后,再创建 cd /data touch text.txt 创建多个文件 touch 1.txt 2.txt 3.txt 或者 touch {a,b,c,d}.txt touch /data/{q,w,e,r,t,y}.txt 大于号创建 >c.txt 重定向 ehco > a.txt
5.2、cp
复制文件或者目录
cp a.txt test4 //复制文件到test4文件下
[root@model Documents]# cp a.txt hh.txt test test4/ -i cp: overwrite `test4/a.txt'? y //有相同文件是提示覆盖 [root@model Documents]# ll test4 //查看tests4目录 total 8 -rw-r--r--. 1 root root 23 Feb 20 06:09 a.txt -rw-r--r--. 1 root root 0 Feb 20 06:09 hh.txt -rw-r--r--. 1 root root 71 Feb 20 06:09 test [root@model Documents]#
[root@model Documents]# cp test4/ tests/ -rip //将test4整个目录cp到tests目录下 [root@model Documents]# ls tests/ a.txt c.txt test1 test4 x.txt z.txt [root@model Documents]# ll tests/ total 12 -rw-r--r--. 1 root root 23 Feb 20 05:10 a.txt -rw-r--r--. 1 root root 0 Feb 20 05:11 c.txt drwxr-xr-x. 3 root root 4096 Feb 20 01:55 test1 drwxr-xr-x. 2 root root 4096 Feb 20 06:09 test4 -rw-r--r--. 1 root root 0 Feb 20 05:11 x.txt -rw-r--r--. 1 root root 0 Feb 20 05:11 z.txt [root@model Documents]#
5.3、rm
删除文件或者目录
[root@model Documents]# ll total 32 -rw-r--r--. 1 root root 23 Feb 19 2015 a.txt drwxr-xr-x. 4 root root 4096 Feb 20 2015 com drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 0 Feb 20 2015 file1.txt -rw-r--r--. 1 root root 0 Feb 20 2015 file2.doc -rw-r--r--. 1 root root 0 Feb 20 2015 hh.txt -rw-r--r--. 1 root root 21 Feb 20 2015 n.txt~ -rw-r--r--. 1 root root 71 Feb 20 2015 test drwxr-xr-x. 3 root root 4096 Feb 20 2015 test1 drwxr-xr-x. 2 root root 4096 Feb 20 2015 test4 drwxr-xr-x. 4 root root 4096 Feb 20 2015 tests [root@model Documents]# rm -rf n.txt~ //删除文件不提示 [root@model Documents]# ll total 28 -rw-r--r--. 1 root root 23 Feb 19 2015 a.txt drwxr-xr-x. 4 root root 4096 Feb 20 2015 com drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 0 Feb 20 2015 file1.txt -rw-r--r--. 1 root root 0 Feb 20 2015 file2.doc -rw-r--r--. 1 root root 0 Feb 20 2015 hh.txt -rw-r--r--. 1 root root 71 Feb 20 2015 test drwxr-xr-x. 3 root root 4096 Feb 20 2015 test1 drwxr-xr-x. 2 root root 4096 Feb 20 2015 test4 drwxr-xr-x. 4 root root 4096 Feb 20 2015 tests [root@model Documents]#
ls a.txt dir2 file2.doc test test4 com file1.txt hh.txt test1 tests [root@model Documents]# rm hh.txt //删除文件会默认提示 rm: remove regular empty file `hh.txt'? y [root@model Documents]#
[root@model Documents]# ll test5 total 0 -rw-r--r--. 1 root root 0 Feb 19 22:26 1.txt -rw-r--r--. 1 root root 0 Feb 19 22:26 2.txt -rw-r--r--. 1 root root 0 Feb 19 22:26 3.txt -rw-r--r--. 1 root root 0 Feb 19 22:26 4.txt -rw-r--r--. 1 root root 0 Feb 19 22:26 5.txt [root@model Documents]# rm -rf test5 //删除整个目录不提示文件一起删除 [root@model Documents]# ll total 28 -rw-r--r--. 1 root root 23 Feb 19 2015 a.txt drwxr-xr-x. 4 root root 4096 Feb 20 2015 com drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 0 Feb 20 2015 file1.txt -rw-r--r--. 1 root root 0 Feb 20 2015 file2.doc -rw-r--r--. 1 root root 71 Feb 20 2015 test drwxr-xr-x. 3 root root 4096 Feb 20 2015 test1 drwxr-xr-x. 2 root root 4096 Feb 20 2015 test4 drwxr-xr-x. 4 root root 4096 Feb 20 2015 tests [root@model Documents]#
5.4、mv
移动文件或者目录
常用参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
[root@model Documents]# ll total 28 -rw-r--r--. 1 root root 23 Feb 19 2015 a.txt drwxr-xr-x. 4 root root 4096 Feb 20 2015 com drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 0 Feb 20 2015 file1.txt -rw-r--r--. 1 root root 0 Feb 20 2015 file2.doc -rw-r--r--. 1 root root 71 Feb 20 2015 test drwxr-xr-x. 3 root root 4096 Feb 20 2015 test1 drwxr-xr-x. 2 root root 4096 Feb 20 2015 test4 drwxr-xr-x. 4 root root 4096 Feb 20 2015 tests [root@model Documents]# mv a.txt b.doc //文件重命名 [root@model Documents]# ll total 28 -rw-r--r--. 1 root root 23 Feb 19 2015 b.doc drwxr-xr-x. 4 root root 4096 Feb 20 2015 com drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 0 Feb 20 2015 file1.txt -rw-r--r--. 1 root root 0 Feb 20 2015 file2.doc -rw-r--r--. 1 root root 71 Feb 20 2015 test drwxr-xr-x. 3 root root 4096 Feb 20 2015 test1 drwxr-xr-x. 2 root root 4096 Feb 20 2015 test4 drwxr-xr-x. 4 root root 4096 Feb 20 2015 tests [root@model Documents]#
[root@model Documents]# ls b.doc dir2 file2.doc test1 tests com file1.txt test test4 [root@model Documents]# mv b.doc test4/yy.txt //移动文件并重命名 [root@model Documents]# ll test4/ total 12 -rw-r--r--. 1 root root 23 Feb 20 2015 a.txt -rw-r--r--. 1 root root 0 Feb 20 2015 hh.txt -rw-r--r--. 1 root root 71 Feb 20 2015 test -rw-r--r--. 1 root root 23 Feb 19 2015 yy.txt [root@model Documents]#
[root@model Documents]# ll total 24 drwxr-xr-x. 4 root root 4096 Feb 20 2015 com drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 0 Feb 20 2015 file1.txt -rw-r--r--. 1 root root 0 Feb 20 2015 file2.doc -rw-r--r--. 1 root root 71 Feb 20 2015 test drwxr-xr-x. 3 root root 4096 Feb 20 2015 test1 drwxr-xr-x. 2 root root 4096 Feb 19 22:32 test4 drwxr-xr-x. 4 root root 4096 Feb 20 2015 tests [root@model Documents]# mv dir2/ test1/ //移动整个文件夹 [root@model Documents]# ll test1/ total 20 -rw-r--r--. 1 root root 23 Feb 20 2015 a.txt -rw-r--r--. 1 root root 71 Feb 20 2015 b.txt drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 87 Feb 20 2015 n.txt drwxr-xr-x. 2 root root 4096 Feb 19 22:32 test2 [root@model Documents]#
5.5、find
查找文件或者目录
- -name:可以用通配符来查找如:* ?
- -size:可以用+,-来设置大小+表示大于多少,-表示少于多少
- -user:属于哪个用户
- -type:文件类型,普通文件有f,目录用d,块设备用b,字符设备用c
[root@model Documents]# find /etc/ -name resol*.conf //-name使用 /etc/resolv.conf /etc/sysconfig/networking/profiles/default/resolv.conf [root@model Documents]#
[root@model Documents]# find /boot/ -type d //-type使用查找boot目录下的所有目录 /boot/ /boot/efi /boot/efi/EFI /boot/efi/EFI/redhat /boot/lost+found /boot/grub [root@model Documents]#
//查找当前目录中属于root用户的.txt的所有文件 [root@model test1]# ll total 20 -rw-r--r--. 1 root root 23 Feb 20 2015 a.txt -rw-r--r--. 1 root root 71 Feb 20 2015 b.txt drwxr-xr-x. 3 root root 4096 Feb 20 2015 dir2 -rw-r--r--. 1 root root 87 Feb 20 2015 n.txt drwxr-xr-x. 2 root root 4096 Feb 19 22:32 test2 [root@model test1]# find ./*.txt -user root ./a.txt ./b.txt ./n.txt [root@model test1]#
5.6、which
查找命令文件的位置
//查找命令所在位置 [root@model test1]# which ls alias ls='ls --color=auto' /bin/ls [root@model test1]# which cat /bin/cat [root@model test1]# which rm alias rm='rm -i' /bin/rm [root@model test1]# which touch /bin/touch [root@model test1]# which mv alias mv='mv -i' /bin/mv [root@model test1]#
5.7、file
查看文件类型
[root@model test1]# file a.txt a.txt: ASCII text [root@model test1]# file dir2/ dir2/: directory [root@model test1]#
[root@model test1]# file ls ls: cannot open `ls' (No such file or directory) [root@model test1]# which ls alias ls='ls --color=auto' /bin/ls [root@model test1]# 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.18, stripped [root@model test1]# file /etc/init.d/network /etc/init.d/network: Bourne-Again shell script text executable [root@model test1]# file /dev/sda1 /dev/sda1: block special [root@model test1]# file /dev/lp3 /dev/lp3: character special [root@model test1]#
5.8、ln
建立快捷方式:硬连接和符号连接(软件连接)
不能对目录,创建硬连接,也不能跨越分区创建硬链拉文件
创建软件连接时需要加参数[-s]
如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件
[root@model Downloads]# ln ../Documents/test1/a.txt [root@model Downloads]# ll total 4 -rw-r--r--. 2 root root 23 Feb 20 2015 a.txt