zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    反汇编测试20191325
    20191325mystat
    20191325学习笔记8
    20191325学习笔记7
    2.3.1测试 20191325
    20191214-改进ls
    团队作业4
    20191214-反汇编测试
    stat命令的实现-mysate(必做)
    图片
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4296307.html
Copyright © 2011-2022 走看看