zoukankan      html  css  js  c++  java
  • 04文件目录管理命令

    1. touch 命令

    touch 命令用于创建空白文件或设置文件的时间,格式为“touch [选项][文件]”。
    -a    仅修改“读取时间” (atime)
    -m   仅修改“修改时间” (mtime)
    -d    同时修改 atime 和 mtime
    
    #使用touch -d 命令将修改后的文件的时间设置成修改前的时间(很多黑客就是这样做的)
    [root@bogon 0607]# ls -l a.txt
    -rw-r--r--. 1 root root 8 Jun  7 17:02 a.txt
    [root@bogon 0607]# echo "huhuhuhuhuhuhhuhuhuuhuuhuuu" >> a.txt
    [root@bogon 0607]# ls -l a.txt
    -rw-r--r--. 1 root root 36 Jun  7 17:35 a.txt
    [root@bogon 0607]# touch -d "2018-06-07 17:02" a.txt
    [root@bogon 0607]# ls -l a.txt
    -rw-r--r--. 1 root root 36 Jun  7 17:02 a.txt
    

    2. mkdir 命令

    mkdir 命令用于创建空白的目录,格式为“mkdir [选项] 目录”。

    在 Linux 系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外,mkdir 命令还可以结合-p 参数来递归创建出具有嵌套叠层关系的文件目录。

    [root@bogon hk]# mkdir 0608
    [root@bogon hk]# cd 0608
    [root@bogon 0608]# mkdir -p a/b/c
    [root@bogon 0608]# cd a
    [root@bogon a]# cd b
    [root@bogon b]#
    

    3. cp 命令

    cp 命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。

    如果目标文件是目录,则会把源文件复制到该目录中;

    如果目标文件也是普通文件,则会询问是否要覆盖它;

    如果目标文件不存在,则执行正常的复制操作。

    #普通文件的复制
    [root@bogon 0608]# cp test1.txt test1_copy.txt
    [root@bogon 0608]# ls
    a  test1_copy.txt  test1.txt
    # 目录文件的复制     -r 参数表示递归复制 -v表示显示复制过程
    [root@rockman hk]# ls
    0607  0608  0611  0612  0613  0614  test  workdir
    # 将目录0614及该目录下的所有文件全部复制到0614_c目录下(该目录也是新创建的)
    [root@rockman hk]# cp -rv 0614 0614_c
    ‘0614’ -> ‘0614_c’
    ‘0614/openman.txt’ -> ‘0614_c/openman.txt’
    ‘0614/practice.txt’ -> ‘0614_c/practice.txt’
    ‘0614/abc.txt’ -> ‘0614_c/abc.txt’
    ‘0614/bbb.txt’ -> ‘0614_c/bbb.txt’
    ‘0614/ccc.txt’ -> ‘0614_c/ccc.txt’
    ‘0614/aaa.txt’ -> ‘0614_c/aaa.txt’
    ‘0614/example.sh’ -> ‘0614_c/example.sh’
    ‘0614/findtest’ -> ‘0614_c/findtest’
    ‘0614/findtest/aaa.txt’ -> ‘0614_c/findtest/aaa.txt’
    ‘0614/findtest/a.txt’ -> ‘0614_c/findtest/a.txt’
    ‘0614/findtest/aa.txt’ -> ‘0614_c/findtest/aa.txt’
    ‘0614/test’ -> ‘0614_c/test’
    ‘0614/test/560_file’ -> ‘0614_c/test/560_file’
    ‘0614/test/aaa.txt’ -> ‘0614_c/test/aaa.txt’
    ‘0614/test/a.txt’ -> ‘0614_c/test/a.txt’
    ‘0614/test/aa.txt’ -> ‘0614_c/test/aa.txt’
    [root@rockman hk]# ls
    0607  0608  0611  0612  0613  0614  0614_c  test  workdir
    
    

    4. mv 命令

    mv 命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。

    剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。

    如果 在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名。

    [root@bogon 0608]# mv test1.txt TEXT1.txt
    [root@bogon 0608]# ls
    a  test1_copy.txt  TEXT1.txt
    

    5.rm 命令

    rm 命令用于删除文件或目录,格式为“rm [选项] 文件”。

    在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可以在 rm 命令后跟上 -f 参数来强制删除。

    另外,想要删除一个目录,需要在 rm 命令后面接一个 -r 参数才可以,否则删除不掉。

    #删除文件(加-f参数不询问直接删除)
    [root@bogon 0608]# ls
    a  test1_copy.txt  TEXT1.txt
    [root@bogon 0608]# rm test1_copy.txt
    rm: remove regular empty file ‘test1_copy.txt’? y
    [root@bogon 0608]# ls
    a  TEXT1.txt
    [root@bogon 0608]# rm -f TEXT1.txt
    [root@bogon 0608]# ls
    a
    #删除目录(加-r参数删除目录)
    [root@bogon 0608]# rm a
    rm: cannot remove ‘a’: Is a directory
    [root@bogon 0608]# rm -r a
    rm: descend into directory ‘a’? y
    rm: descend into directory ‘a/b’? y
    rm: remove directory ‘a/b/c’? y
    rm: remove directory ‘a/b’? y
    rm: remove directory ‘a’? y
    [root@bogon 0608]# ls
    [root@bogon 0608]#
    #直接删除目录(加-rf参数不询问直接删除目录及其中的文件)
    [root@bogon 0608]# mkdir -p a/b/c
    [root@bogon 0608]# rm -rf a
    [root@bogon 0608]# ls
    [root@bogon 0608]#
    

    6. dd 命令

    dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。

    dd命令能够让用户按照指定大小和个数的数据库来复制文件的内容。

    #使用dd命令从/dev/zero设备文件中取出一个大小为560M的数据块,然后保存成名为560_file的文件。
    [root@bogon 0608]# dd if=/dev/zero of=560_file count=1 bs=560M
    1+0 records in
    1+0 records out
    587202560 bytes (587 MB) copied, 9.9655 s, 58.9 MB/s
    [root@bogon 0608]# ls
    560_file
    
    dd 命令的功能绝不仅限于复制文件这么简单。如果您想把光驱设备中的光盘制成 iso 格式的镜像文件,在 Windows 系统中需要借助第三方软件才能做到,但是在 Linux 系统中可以直接使用 dd 命令来压制出光盘镜像文件,将它变成一个可立即使用的 iso 镜像。
    if                输入的文件名称                                  
    of               输出的文件名称
    bs              设置每个“块”的大小                           
    count         设置要复制“块”的个数
    
    [root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
    7311360+0 records in
    7311360+0 records out
    3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
    

    考虑到有些读者会纠结 bs 块大小与 count 块个数的关系,下面举一个吃货的例子进行解释。假设小明的饭量(即需求)是一个固定值,用来盛饭的勺子的大小即 bs 块的大小,而用勺子盛饭的次数即 count 块个数。小明要吃饱(满足需求),则需要在勺子大小(bs块大小)与用勺子盛饭的次数(count块个数)之间进行平衡。勺子越大,用勺子盛饭的次数就越少。由此可见,bs 与 count 都是用来指定容量大小的,只要能满足需求,可随意组合搭配方式。

    7. file 命令

    file 命令用于查看文件的类型,格式为“file 文件名”。

    在Linux系统中,由于文本、目录、设备等所有这些一切统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用 file 命令来查看文件类型了。

    [root@bogon 0608]# file aaa.txt
    aaa.txt: ASCII text
    [root@bogon 0608]# file /dev/sda
    /dev/sda: block special
    [root@bogon 0608]#
    
    道虽迩,不行不至;事虽小,不为不成。
  • 相关阅读:
    C#事件由浅至深简析
    数据传递型情景下事件机制与消息机制的架构设计剖析(目录)
    数据传递型情景下事件机制与消息机制的架构设计剖析(一)
    从问题说开来……
    windows server作为文件服务器如何精细控制权限
    TortoiseGit 删除密码 清除密码 让你每次都输入账号密码提交
    adb基础常用命令总结
    python之冒泡排序
    python水仙花数
    fiddler抓取手机(iPhoneX)APP上HTTPS接口数据
  • 原文地址:https://www.cnblogs.com/rock-cc/p/9165805.html
Copyright © 2011-2022 走看看