7-28-文件管理

1.stat命令和时间戳 详解

背景:       
        在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道
        文件的创建时间。但如果
        文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创
        建时间;如果文件创建后,
        没有被读取过,那么访问时间=创建时间,这个基本不太可能。
时间戳:每一个文件都有3中时间(称为时间戳timestamps),对这3种时间,很多时候容易混淆不清。
            Access time(atime):是指查看文件(内容)的时间,所谓取用,常见的操作有:使用编辑器查看文件内
        容,使用cat命令显示文件内容,使用cp命令把该文件(即来源文件)复制成其他文件,或者在这个文件上运
        用grep sed more less tail head 等命令,凡是读取而不修改文件的操作,均衡改变文件的Access time.  
            Modify time(mtime):是指修改文件内容的时间,只要文件内容有改动(如使用转向输出或转向附加的
        方式)或存盘的操作,就会
            改变文件的Modify time,平常我们使用ls –l查看文件时,显示的时间就是Modify time          
        Change time(ctime):是指文件属性(元数据)或文件位置改动的时间,如使用chmod,chown,mv指令集使
        用ln做文件的硬是连接,就会改变文件的Change time.  
                
stat命令:查看文件状态
    功能说明:显示inode内容
    语  法:stat [文件或目录]
    补充说明:stat以文字的格式来显示inode的内容
        [root@localhost ~]# stat install.log
          File: "install.log"
          Size: 47326      Blocks: 104        IO Block: 4096   普通文件
        Device: 803h/2051d Inode: 915714      Links: 1
        Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
        Access: 2016-07-19 19:19:11.179998361 +0800
        Modify: 2016-07-19 19:38:08.996997327 +0800
        Change: 2016-07-19 19:38:31.687997301 +0800
        
    stat -f 显示了有关文件系统(而非文件)的信息
        [root@localhost testdir]# stat -f python_dir/getFTPdir.py 
          File: "python_dir/getFTPdir.py"
            ID: 78f86a0ed0592c40 Namelen: 255     Type: ext2/ext3
        Block size: 4096       Fundamental block size: 4096
        Blocks: Total: 4819016    Free: 3886210    Available: 3639746
        Inodes: Total: 1234576    Free: 1128101

2.touch命令:刷新时间

    touch命令用来修改文件时间戳,或者新建一个不存在的空文件
    用法:touch [OPTION]... FILE...
    选项:
        -a: 仅改变 atime
        -m: 仅改变 mtime
        -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同(touch -r a b 将b的日期设置成a的)
        -t: 使用指定的日期时间,而非现在的时间。[[CC]YY]MMDDhhmm[.ss]
        -c: 如果文件不存在,则不予创建

3.cp命令

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
选项
    -i:交互式
    -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

cp.png

 4.alias别名

        为了方便频繁使用某一命令,Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,这样一来,以后只需输入一个简短的别名就可以达到同样的作用

定义:  
        显示当前shell进程所有可用的命令别名    
                ~]#alias
        定义别名NAME,其相当于执行命令VALUE
            ~]#alias NAME='VALUE'
        注:在命令行中定义的别名,仅对当前shell进程有效,要想永久有效,要定义在配置文件中:
                仅对当前用户: ~/.bashrc
                对所有用户有效: /etc/bashrc
        编辑配置完成后,要重读配置文件,采用. /PATH/FILE或source /PATH/FILE
删除:
        unalias 别名名称
            -a 删除所有别名
            
若别名和命令名称相同,要执行原始命令,不执行别名:
        \COMMAND
        'COMMAND'
        /PATH/COMMAND (外部命令可用)

5.mv移动或重命名

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
        -i: 交互式
        -f: 强制

6.rm删除

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

7.目录操作

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

8.file命令

检查文文件类型,然后确定适当的开放命令或应用程序使用
file [options] <filename>...
Option:
      -b列出文件辨识结果时,不显示文件名称。    
      -c详细显示指令执行过程,便于排错或分析程序执行形    
      -f列出文件中文件名的文件类型   
      -F使用指定分隔符号替换输出文件名后默认的”:”分隔符  
      -i输出mime类型的字符串   
      -L查看对应软链接对应文件的文件类型    
      -z尝试去解读压缩文件的内容
      --help显示命令在线帮助

 9.inode和链接 详解

inode和链接.png

 软链接其他特点:

软链接以l开头
软链接权限为777
软链接文件大小为原文件路径字符数

概念

1.linux上目录结构

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区, OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
     b: block device,块设备,随机访问
     c: character device,字符设备,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
     /bin/主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free等。
     /sbin:放置一些网路管理的必备程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba等
     /lib: 32位使用
     /lib64:只存在64位系统
     /include: C程序的头文件(header files)
     /share:结构化独立的数据,例如doc, man等
     /local:第三方应用程序的安装位置
/var: variable data files
    /cache: 应用程序缓存数据目录
    /lib: 应用程序状态信息数据
    /local:专用于为/usr/local下的应用程序存储可变数据;
    /lock: 锁文件
    /log: 日志目录及文件
    /opt: 专用于为/opt下的应用程序存储可变数据;
    /run: 运行中的进程相关数据;通常用于存储进程pid文件
    /spool: 应用程序数据池
/tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux, selinux相关的安全策略等信息的存储位置
centos7目录变化:
    /bin转移到/usr/bin;/sbin转移到/usr/sbin;/lib转移到/usr/lib;/lib64转移到/usr/lib64.
综述:如果这是用户和管理员必备的二进制文件,就会放在/bin。如果这是系统管理员必备,但是一般用户根本不会用到的二进
制文件,就会放在 /sbin。相对而言。如果不是用户必备的二进制文件,多半会放在/usr/bin;如果不是系统管理员必备的工
具,多半会放在/usr/sbin。

2.linux上命令组成

二进制程序: /bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
库文件: /lib, /lib64, /usr/lib, /usr/lib64,/usr/local/lib, /usr/local/lib64
配置文件: /etc, /etc/DIRECTORY, /usr/local/etc
帮助文件: /usr/share/man, /usr/share/doc,/usr/local/share/man, /usr/local/share/doc

3.文件类型

-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket

 4.绝对路径和相对路径

绝对路径:
        以正斜杠(/)开始
        完整的文件的位置路径
        从根下开始定义路径
 相对路径:
         不以斜线开始
         指定相对于当前工作目录或某目录的位置
         .表示当前目录
         ..表示上级目录
                 
改变目录:
        到上一级目录:cd ..
        为了你的主目录:cd
        到以前的工作目录:cd -
        
环境变量:
        PWD:保存了当前目录路径
        OLDPWD:上一次所在目录路径

 5.文件名通配

* 匹配零个或多个字符 
? 匹配任何单个字符 
~ 当前用户家目录 
~username 用户家目录 
~+ 当前工作目录 
~- 前一个工作目录 
[0-9] 匹配一个数字范围 
[a-z]:大写和小写字母 
[A-Z]:大写字母
        [wxc]:匹配列表中的任何的一个字符
        [^wxc]:匹配列表中的所有字符以外的字符
        
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:空格
[:punct:]:标点符号

原创文章,作者:M20-1--孔祥文,如若转载,请注明出处:http://www.178linux.com/26621

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-08-02
下一篇 2016-08-02

相关推荐

  • Linux发行版的基础目录名称命名法则及功用规定

    [root@localhost /]# tree -L 1. <—-> 为 / 符号,所有文件的根目录;├── bin -> usr/bin <—-> 所有用户可用的基本命令程序文件;├── boot <—-> 引导加载器必须用到的各静态文件:kernel,initramfs(in…

    2018-02-28
  • LINUX-echo命令

    echo命令:回显         语法:echo [-neE][字符串]     说明:echo会将输入的字符串送往标准输出。输出的字符串间         以空白字符隔开,并在最后加上换行号。   &nbs…

    Linux干货 2017-05-22
  • Mariadb数据库复制系列(二):主主复制

       实验二:MySQL双主复制架构的实现 双主的实现方式与主/从类似,仅是两个主机即使主节点,又是对方的从节点双主模型容易造成数据的不一致性,因此要慎用! 1、实验环境 2、在两个节点上安装mariadb-server服务 3、修改两个节点的服务器配置文件 4、两个节点上各自启动服务,各授权一个具有复制权限的用户 5、查看两个节点的二进制日志的状态 6、在…

    Linux干货 2016-11-24
  • 第三周小练习

    1. 列出当前系统上所有已经登陆的用户的用户名,注意,同一个用户登陆多次,则显示一次即可 who -u|grep -o "^[[:alnum:]]*\>"|uniq 2. 取出最后登陆到当前系统的用户信息 who|tail -n1 3. 取出当前系统上被用户当作其默认shell的最多的那个sh…

    Linux干货 2016-11-21
  • Http协议中的各种长度限制总结

    HTTP1.0的格式 request(HTTP请求消息)结构:一个请求行.部分消息头,以及实体内容,其中的一些消息内容都是可选择的.消息头和实体内容之间要用空行分开. GET /index.html HTTP/1.1 //请求头,下面都是消息头.Accept: */*Accept-Languang:en-usConnection:keep-aliveHost…

    Linux干货 2015-04-04
  • linux第一周学习

      一周过去了,这周学习并新认识了不少内容。由一开始的萌逼状态,逐步清晰的认识了不少内容。相信我会越来越好的。 文件与目录 touch touch newfile         创建空文件touch oldfile          更新文件的三个…

    Linux干货 2017-09-02