3-文件管理

作者: Liang_JC | 来源:发表于2020-02-20 12:05 被阅读0次

本章内容

◆ 文件系统结构元素
◆ 创建和查看文件
◆ 复制、转移和删除文件
◆ 软和硬链接

文件系统与目录结构

image.png

lsblk #查看硬盘

虚拟机添加新硬盘不重启

echo '- - -' > /sys/class/scsi_host/host{0,1,2}/scan  

文件类型

-   普通文件  
b   块文件  
c   字符文件  
d   目录  
s   套接字  
p   管道文件  
l   软连接  

nano /etc/DIR_COLORS    #文件颜色  

touch -- -h             #创建-h文件  

pwd     #显示当前目录  
    -P 显示真实物理路径  
    -L 显示链接路径(默认)  

basename /etc/sysconfig/network  
    结果:network  
dirname /etc/sysconfig/network  
    结果:/etc/sysconfig  

stat file               #查看文件3个时间  
ls -l --time=atime      #查看文件读时间(访问也会改变)  
ls -l --time=ctime      #查看文件属性改变时间  
ls -l --time=mtime      #查看文件修改时间  

vim /etc/selinux/config  
    SELINUX=disabled    #禁用selinux  

chkconfig iptables off      #centos6禁用防火墙启动项  
systemctl disable firewalld #centos7禁用防火墙启动项

通配符

* 匹配零个或多个字符  
? 匹配任何单个字符  
~ 当前用户家目录  
~mage 用户mage家目录  
~+ 当前工作目录  
~- 前一个工作目录  
[0-9] 匹配数字范围  
[a-z]:字母  
[A-Z]:字母  
[wang] 匹配列表中的任何的一个字符  
[^wang] 匹配列表中的所有字符以外的字符

文件通配符

预定义的字符类:man 7 glob  
    [:digit:]:任意数字,相当于0-9  
    [:lower:]:任意小写字母  
    [:upper:]: 任意大写字母  
    [:alpha:]: 任意大小写字母  
    [:alnum:]:任意数字或字母  
    [:blank:]:水平空白字符  
    [:space:]:水平或垂直空白字符  
    [:punct:]:标点符号  
    [:print:]:可打印字符  
    [:cntrl:]:控制(非打印)字符  
    [:graph:]:图形字符  
    [:xdigit:]:十六进制字符  

    ls -d .*    #显示隐藏文件  
    ls */       #显示所有非隐藏文件夹

练习

1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
ls /var/l*[0-9]*[[:lower:]]  
2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls /etc/[0-9]*[^0-9]  
3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
ls /etc/[^[:alpha:]][[:alpha:]]*  
4、显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
ls /etc/rc[0-6]*
5、显示/etc目录下,所有以.d结尾的文件或目录
ls /etc/*.d   
6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls /etc/[mnrp]*.conf  
7、只显示/root下的隐藏文件和目录
ls -d /root/.*  
8、只显示/etc下的非隐藏目录
ls -d /etc/

创建空文件和刷新时间

touch命令  
    格式:touch [OPTION]... FILE...  
        -a 仅改变 atime和ctime  
        -m 仅改变 mtime和ctime  
        -t [[CC]YY]MMDDhhmm[.ss]  
    指定atime和mtime的时间  
        -c 如果文件不存在,则不予创建

复制文件和目录cp

cp SRC... DEST  
    SRC... 多个文件  
DEST 必须存在,且为目录,其它情形均会出错  
    cp SRC DEST  
    SRC是目录:此时使用选项:-r  

cp常用选项  
    -i 覆盖前提示  
    -n 不覆盖,注意两者顺序  
    -r, -R 递归复制目录及内部的所有内容  
    -a 归档,相当于-dR --preserv=all  
    -d --no-dereference --preserv=links 不复制原文件,只复制链接名  
    --preserv[=ATTR_LIST]  
        mode: 权限  
        ownership: 属主属组  
        timestamp:  
        links  
        xattr  
        context  
        all  
    -p 等同--preserv=mode,ownership,timestamp  
    -v --verbose  
    -f --force  
    -u --update 只复制源比目标更新文件或目标不存在的文件  
    -b 目标存在,覆盖前先备份,形式为 filename~  
    --backup=numbered 目标存在,覆盖前先备份加数字后缀

练习

1、每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见
cp -av /etc /data/backup`date +%F`  
2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
cp -rp /root /data/rootdir

移动和重命名文件

mv [OPTION]... [-T] SOURCE DEST  
mv [OPTION]... SOURCE... DIRECTORY  
mv [OPTION]... -t DIRECTORY SOURCE...  
    常用选项:  
        -i 交互式  
        -f 强制  
        -b 目标存在,覆盖前先备份

删除

rm [OPTION]... FILE...  
    常用选项:  
        -i 交互式  
        -f 强制删除  
        -r 递归  
        --no-preserve-root 删除/  
    示例:  
        rm -rf /*

目录操作

tree 显示目录树  
    -d: 只显示目录  
    -L level:指定显示的层级数目  
    -P pattern: 只显示由指定pattern匹配到的路径  
mkdir 创建目录  
    -p: 存在于不报错,且可自动创建所需的各目录  
    -v: 显示详细信息  
    -m MODE: 创建目录时直接指定权限  
rmdir 删除空目录  
    -p: 递归删除父空目录  
    -v: 显示详细信息  
rm -r 递归删除目录树  

删除大文件快速方法  
    > /tmp/bigfile  

快速批量改文件名  
    rename .log .log.bak *  
    rename .bak "" *

练习

(1) 如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b
mkdir -p /testdir/dir1/{x,y}/{a,b}  
(2) 如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a, /testdir/dir2/x/b
mkdir -p /testdir/dir2/{x/{a,b},y}  
(3) 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7
mkdir -p /testdir/dir{3,4,5/{6,7}}

索引节点

inode(index node)表中包含文件系统所有文件列表
一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包括:
    文件类型,权限,UID,GID
    链接数(指向这个文件名路径名称个数)
    该文件的大小和不同的时间戳
    指向磁盘上文件的数据块指针
    有关文件的其他数据

inode表结构

image.png

inode表结构

image.png

目录

文件引用一个是 inode号
人是通过文件名来引用一个文件
一个目录是目录下的文件名和文件inode号之间的映射  

inode表

image.png

cp和inode

在 CP的 命令:
    分配一个空闲的inode号,在inode表中生成新条目
    在目录中创建一个目录项,将名称与inode编号关联
    拷贝数据生成新的文件

rm和inode

rm 命令:
    链接数递减,从而释放的inode号可以被重用
    把数据块放在空闲列表中
    删除目录项
    数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv和inode

如果mv命令的目标和源在相同的文件系统,作为mv 命令
    用新的文件名创建对应新的目录项
    删除旧目录条目对应的旧的文件名
    不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
如果目标和源在一个不同的文件系统, mv相当于cp和rm

硬链接

创建硬链接会增加额外的记录项以引用文件  
对应于同一文件系统上一个物理文件  
每个目录引用相同的inode号  
创建时链接数递增  
删除文件时:  
    rm命令递减计数的链接  
    文件要存在,至少有一个链接数  
    当链接数为零时,该文件被删除  
不能跨越驱动器或分区  
语法:  
    ln filename [linkname ]

符号(或软)链接

一个符号链接指向另一个文件  
ls - l的 显示链接的名称和引用的文件  
一个符号链接的内容是它引用文件的名称  
可以对目录进行  
可以跨分区  
指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数  
语法:  
    ln -s filename ... [linkname]  

相对路径软连接  
/data/f1  
ln -s ../f1 d1/f1.link

硬链接和软件连接区别

1、本质:硬链接:同一个文件,多个名字,软连接不同文件  
2、跨分区,硬不支持  
3、目录,硬不支持  
4、相互关系,软:相互依赖关系  
5、inode号,硬相同,软不同  
6、链接数  
7、路径:软:原始文件路径不同  
8、文件类型  
9、命令格式不同:硬ln 软ln -s

确定文件内容

文件可以包含多种类型的数据  
检查文件的类型,然后确定适当的打开命令或应用程序使用  
file [options] <filename>...  
常用选项:  
    -b 列出文件辨识结果时,不显示文件名称  
    -f filelist 列出文件filelist中文件名的文件类型  
    -F 使用指定分隔符号替换输出文件名后默认的”:” 分隔符  
    -L 查看对应软链接对应文件的文件类型  
    --help 显示命令在线帮助

相关文章

  • 3-文件管理

    本章内容 ◆ 文件系统结构元素◆ 创建和查看文件◆ 复制、转移和删除文件◆ 软和硬链接 文件系统与目录结构 lsb...

  • 3-文件

    参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大...

  • day05-文件管理3-笔记

    昨天回顾: cp grep cat less more head tail tailf cp文件拷贝 ​ -p...

  • NSFileManager 文件管理

    文件管理 - 创建 文件管理 -- 添加 文件管理 --- 删除 文件管理 --- 复制

  • Test-notMNIST

    代码块1-载入模块 代码块2-下载文件 代码块3-解压文件并存储解压后的文件地址 问题1-显示解压后的图像 代码块...

  • 2018-12-08

    3-甲氧基-1-丙醇 中文名称:3-甲氧基-1-丙醇 中文别名:3-甲氧基丙醇,3-甲氧基-1-丙醇; 1,3-丙...

  • 01-必备计算机知识

    一、文件管理 文件分类 良好的文件分类管理,方便于查找和管理文件。 文件命名 文件后缀文件按照不同的格式和用途分很...

  • 01-必备计算机知识

    一、文件管理 文件分类 良好的文件分类管理,方便于查找和管理文件。 文件命名 文件后缀文件按照不同的格式和用途分很...

  • 操作系统(4) -- 文件管理、IO管理

    内容大纲 1、文件管理; 2、文件系统管理 3、输入/输出管理 4、缓冲区 1 文件管理 文件 文件是指记录在外存...

  • 如何做项目群的计划管理 之三 计划管理

    项目群计划管理-3-计划管理 Version: v0.1 上期我们谈到了计划的制定,在本期内容中我们着重谈一下计划...

网友评论

    本文标题:3-文件管理

    本文链接:https://www.haomeiwen.com/subject/tsanfhtx.html