Linux文件管理

1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示。
 Linux上的文件管理命令


  目录管理类命令:mkdir,rmdir


   mkdir [OPTION]… DIRECTORY…
     -p: 自动按需创建父目录;
     -v: verbose,显示详细过程;
     -m MODE:直接给定权限;

     注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;
   示例:
    mkdir -pv /tmp/test/x/{y1/{a,b},y2}
    ]# mkdir -pv /tmp/test/x/{y1/{a,b},y2}
    mkdir: created directory ‘/tmp/test/x’
    mkdir: created directory ‘/tmp/test/x/y1’
    mkdir: created directory ‘/tmp/test/x/y1/a’
    mkdir: created directory ‘/tmp/test/x/y1/b’
    mkdir: created directory ‘/tmp/test/x/y2’


   rmdir:remove empty directories

    rmdir [OPTION]… DIRECTORY…

     -p:删除某目录后,如果其父目录为空,则一并删除之;
     -v: 显示过程;

 

  文件查看类命令:cat,tac,head,tail,more,less
   分屏查看命令:more、less

   more命令:
    more File
     特点:翻屏至文件尾部后自动退出

 

   less命令:
    less File

   head命令:
    查看文件的前几行,不加选项默认10
     head [options] FILE
      -n #
      #

 

   tail命令:
    查看文件的后n行,n默认为10
     tail [options] FILE
     -n #
     -#
     -f:查看文件尾部内容结束后不退出,跟随显示新增的行

 

   stat命令:
    diplay file or file system status

    stat FILE…

    ]# stat /etc/passwd
      File: ‘/etc/passwd’
      Size: 2974       Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d Inode: 137078816   Links: 1
    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: system_u:object_r:passwd_file_t:s0
    Access: 2016-09-22 10:34:59.770860842 +0800
    Modify: 2016-09-22 10:34:58.291816313 +0800 数据修改时间
    Change: 2016-09-22 10:34:58.292816343 +0800 元数据改变时间
     Birth: –

 

   touch命令:
    change file timestamps

    touch [Options]… FILE
     -c:指定的文件路径不存在时不予创建;
     -a:仅修改access time
     -m:仅修改modify time
     -t STAMP
      [[CC]YY]MMDDhhmm[.ss]

    ]# touch a.txt
    ]# stat a.txt
      File: ‘a.txt’
      Size: 0          Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d Inode: 137086215   Links: 1
    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-09-23 10:37:05.507940076 +0800
    Modify: 2016-09-23 10:37:05.507940076 +0800
    Change: 2016-09-23 10:37:05.507940076 +0800
     Birth: –

    ]# touch -m -t 201609240000 a.txt
    ]# stat a.txt
      File: ‘a.txt’
      Size: 0          Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d Inode: 137086215   Links: 1
    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-09-23 10:37:05.507940076 +0800
    Modify: 2016-09-24 00:00:00.000000000 +0800 Modify时间已修改
    Change: 2016-09-23 10:39:16.183008667 +0800
     Birth: –

 

  文件管理工具:cp,mv,rm
   cp命令:copy
    源文件;目标文件;
    单源复制:cp [OPTION]…[-T]SOURCE DEST
     如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
           如果DEST存在:
            如果DEST是非目录文件:则覆盖目标文件;
            如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

       多源复制:cp [OPTION]… SOURCE… DIRECTORY
             cp [OPTION]… -t DIRECTORY SOURCE…

           如果DEST不存在:错误;
           如果DEST存在:
            如果DEST是非目录文件:错误;
            如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名; 

          常用选项:
           -i:交互式复制,即覆盖之前提醒用户确认
           -f:强制覆盖目标文件
           -r:-R:递归复制目录
           -d:复制符号链接文件本身,而非其指向的源文件
           -a:-dR –preserver=all
           archive,用于实现归档
           –preserve=
            mode:权限
            ownership:属主和属组
            timestamps:时间轴
            context:安全标签
            xattr:扩展属性
            links:符号链接
            all:上述所有

 

      mv命令:move
         mv [OPTION]… [-T] SOURCE DEST
         mv [OPTION]… SOURCE… DIRECTORY
         mv [OPTION]… -t DIRECTORY SOURCE..      

         常用选项:
           -i:交互式;
           -f:force

 

      rm命令:remove
       rm [OPTION]… FILE…

       常用选项:
        -i:interactive
        -f:force
        -r: recursive

        删除目录:rm -rf /PATH/TO/DIR
         危险操作:rm -rf /*

       注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)

 

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

        命令执行完成之后,其状态返回值保存于bash的特殊变量$?中

                成功:0;失败:1-255

                        [root@localhost ~]# ls -d /etc
                        /etc
                        [root@localhost ~]# echo $?
                        0
                        [root@localhost ~]# lss -d /etc
                        bash: lss: command not found…
                        Similar command is: 'ls'
                        [root@localhost ~]# echo $?
                        127

         命令行展开

         ~:自动展开为用户的家目录,或指定的用户的家目录

                        [root@localhost ~]# cd ~
                        [root@localhost ~]# pwd
                        /root
                        [root@localhost ~]# cd ~void
                        [root@localhost void]# pwd
                        /home/void

           {}:可承载一个以逗号分隔的路径列表,斌能够将其展开为多个路径:

                        [root@localhost void]# mkdir -v /tmp/{a,b}
                        mkdir: created directory ‘/tmp/a’
                        mkdir: created directory ‘/tmp/b’       

3、请使用命令行展开功能来完成以下练习:

        (1)、创建/tmp目录下的:a_c,a_d,b_c,b_d

~]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: created directory ‘/tmp/a_c’
mkdir: created directory ‘/tmp/a_d’
mkdir: created directory ‘/tmp/b_c’
mkdir: created directory ‘/tmp/b_d’

        (2)、创建/tmp/mylinux目录下的:

~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/netw
ork-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}mkdir: created directory ‘/tmp/mylinux’
mkdir: created directory ‘/tmp/mylinux/bin’
mkdir: created directory ‘/tmp/mylinux/boot’
mkdir: created directory ‘/tmp/mylinux/boot/grub’
mkdir: created directory ‘/tmp/mylinux/dev’
mkdir: created directory ‘/tmp/mylinux/etc’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d/init.d’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’
mkdir: created directory ‘/tmp/mylinux/lib’
mkdir: created directory ‘/tmp/mylinux/lib/modules’
mkdir: created directory ‘/tmp/mylinux/lib64’
mkdir: created directory ‘/tmp/mylinux/proc’
mkdir: created directory ‘/tmp/mylinux/sbin’
mkdir: created directory ‘/tmp/mylinux/sys’
mkdir: created directory ‘/tmp/mylinux/tmp’
mkdir: created directory ‘/tmp/mylinux/usr’
mkdir: created directory ‘/tmp/mylinux/usr/local’
mkdir: created directory ‘/tmp/mylinux/usr/local/bin’
mkdir: created directory ‘/tmp/mylinux/usr/local/sbin’
mkdir: created directory ‘/tmp/mylinux/var’
mkdir: created directory ‘/tmp/mylinux/var/lock’
mkdir: created directory ‘/tmp/mylinux/var/log’
mkdir: created directory ‘/tmp/mylinux/var/run’
[root@localhost tmp]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

24 directories, 0 files

 

3、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

           

        元数据:metadata

        通过stat命令可以查看元数据信息:大小、权限、属主属组、时间戳、数据块指针。

~]# stat /etc/passwd
  File: ‘/etc/passwd’
  Size: 2974       Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d Inode: 137078816   Links: 1
Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2016-09-26 08:09:59.525035520 +0800
Modify: 2016-09-22 10:34:58.291816313 +0800
Change: 2016-09-22 10:34:58.292816343 +0800
 Birth: –

        

        如何修改文件的时间戳信息

touch命令:
       touch – change file timestamps

       touch [OPTION]… FILE…
            -c: 指定的文件路径不存在时不予创建;
            -a: 仅修改access time;
            -m:仅修改modify time;
            -t STAMP
             [[CC]YY]MMDDhhmm[.ss]

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

        定义别名:~]#alias NAME='COMMAND'

            注意:仅对当前shell进程有效

        在命令中引用另外一个命令的执行结果:

        通过管道的方式:COMMAND 1 | COMMAND 2 |COMMAND 3 | …

6、显示/var目录下所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录

        ~]# ls -d /var/l*[0-9]*[[:lower:]]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

        ~]# ls -d /etc/[0-9]*[^0-9]

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

        ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名例如:tfile-2016-05-27-09-32-22。

        ~]# touch /tmp/tfile-`date +%F-%H-%M-%S`

         “命令引用

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

       ~]# mkdir /tmp/mytest1
       ~]# cp -rf /etc/p*[^0-9] /tmp/mytest1

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

        ~]# mkdir /tmp/mytest2

        ~]# cp -rf /etc/*.d /tmp/mytest2/

12、复制/etc/目录下所有以1或m或n开头的,以.conf结尾的文件至/tmp/mytest3目录中。

        ~]# mkdir /tmp/mytest3
        ~]# cp -rf /etc/[1mn]*.conf /tmp/mytest3/

原创文章,作者:N23-苏州-void,如若转载,请注明出处:http://www.178linux.com/48644

(0)
N23-苏州-voidN23-苏州-void
上一篇 2016-09-26
下一篇 2016-09-26

相关推荐

  • MySQL半同步配置

    先配置主从服务器,过程见另一篇博库 就是先搭一个主从服务器,然后 1、先在主节点上安装半同步复制的主节点专用插件 MariaDB [(none)]> SHOW PLUGINS;这条命令可以查看有哪些插件可以用 2、从节点也一样先装插件 从节点上先停止线程 STOP SLAVE; 主节点上 从节点上 START SLAVE; 这里需要手动的停止一下线程,…

    Linux干货 2016-11-21
  • Linux破解root口令

    Centos5、6版本破解口令方法 1 启动系统 2 在操作系统选择菜单界面选中要启动的内核 — 按a键 3 在行尾输入 1(或s或S或single)— 按回车键 4 使用passwd命令修改口令即可   Centos7版本破解口令方法 方法1 1 启动系统 2 在操作系统选择菜单界面选中要启动的内核 — 按e键…

    Linux干货 2018-01-08
  • 第二周-博客

    本文大纲 文件系统层级结构标准 Linux上常见的文件类型 bash的基础特性 用户、组和普通权限 一些零散命令的使用 文件系统层级结构标准 FHS是Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定…

    Linux干货 2016-12-07
  • 马哥教育网络21期+第十二周练习博客上

    1、请描述一次完整的http请求处理过程; (1)建立或处理连接:接受请求或拒绝请求 (2)如果接受请求:     并发访问响应模型:         单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应; &…

    Linux干货 2016-10-17
  • 7月21号:CentOS6.8(及7)基础配置项+Linux入门(1)

    7月21号,马哥第二天,主要内容有三个部分:一、基本命令复习二、CentOS6.8(及7)基础配置项;三、linux入门(1) 一、基本命令复习    ls         查看文件内容  l查看文件详细信息  -a显示包含隐藏文…

    Linux干货 2016-08-05
  • 自制简易linux系统

    一、环境准备 1.笔记本电脑 2.vmware12软件 3.CentOS 6虚拟机 4.大于5G空间的物理磁盘分区 二、分区并挂载文件系统 1.添加磁盘 在vmware中选中CentOS 6系统并右击鼠标选择设置,添加–>硬盘–>SCSI(推荐)–>创建新虚拟磁盘–>大小改为5G–>完成 2.分区并…

    Linux干货 2016-09-20