Linux上常用文件管理类命令使用方法及示例

时间:2021-03-23 22:10:03

Linux运维常用文件管理命令:

  • cp
  • mv
  • rm

cp命令:

  • 作用:复制文件(或者目录等)。可以使用这个命令复制一个文件到一个指定的目的地,或者复制任意多个文件到一个目的目录。
  • 格式:
    1 单源复制:cp [OPTION]... [-T] SOURCE DEST    # OPTION:选项 
    2 多源复制:cp [OPTION]... SOURCE... DIRECTORY    # DIRECTORY:目录
    3         cp [OPTION]... -t DIRECTORY SOURCE...   
  • 格式说明:
  1. 在单源复制中,有两种情况需要说明一下,DEST存在和不存在。(1)当DEST不存在时,会事先创建此文件,并复制文件的数据流至DEST中; (2)DEST存在:如果DEST是非目录文件时,则覆盖目标文件;如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流:
  2. 在多源复制中也有两种情况,DEST存在和不存在。(1)如果DEST不存在:错误;(2)如果DEST存在:当DEST是非目录文件时,错误;当DEST是目录文件,分别复制每个文件至目标目录中,并保持原名。
  • 常用选项:
     1 -i:交互式复制,在覆盖操作前提醒用户确认;
     2 -r:递归复制目录及内部的所有内容;
     3 -a:归档复制,尽可能保持文件的结构和属性;
     4 -d:复制符号链接作为符号链接而不是复制它指向的文件;
     5 -p,--preserve[=ATTR_LIST]:保持原有文件的属性信息,其中ATTR_LIST选项包括mode,ownership,timestamp,links,xattr,context,all等;
     6 -f:强制覆盖,不作覆盖提醒;
     7 -v:显示命令执行过程;
  • 使用示例:
    1.   复制 /etc/fstab文件到 tmp 目录下为test.txt
      ~]# cp /etc/fstab /tmp/test.txt
      ~]# ls /tmp
      ~]# test.txt

       

    2.   复制/etc/issue文件覆盖/tmp/test.txt
      ~]# cp /etc/issue /tmp/test.txt 
      cp: overwrite ‘/tmp/test.txt’? y

       

    3.        复制文件并保留文件的timestamp信息
      ~]# cp --preserve=timestamp /etc/passwd /tmp
      ~]# ll /etc/passwd /tmp/passwd 
      -rw-r--r--. 1 root root 2192 Jun 10 22:38 /etc/passwd
      -rw-r--r--. 1 root root 2192 Jun 10 22:38 /tmp/passwd

       

mv命令:

  • 作用:移动文件(目录)或者用于对文件(目录)的重命名。如果将一个文件移动到一个已存在的目标文件中,则会将目标文件的内容覆盖。
  • 注意事项:
  1. 移动文件或目录时,可以不止一个
  2. mv与cp命令的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。 
  • 格式:
    mv [OPTION]... [-T] SOURCE DEST
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE...

     

  • 常用选项:
    -i:交互式操作,覆盖前先询问用户确认。
    -f:强制覆盖重复文件或目录;
    -t,--target-directory=<DIR>:指定全部的源文件要移动到的目标目录;

     

  • 使用示例
  1. 文件重命名
    ~]# ll /tmp/test.txt 
    -rw-r--r--. 1 root root 23 Jul 25 21:36 /tmp/test.txt
     ~]# mv /tmp/test.txt /tmp/test2.txt
     ~]# ll /tmp/test2.txt 
    -rw-r--r--. 1 root root 23 Jul 25 21:36 /tmp/test2.txt

     

  2. 移动文件
    ~]# mv /tmp/test2.txt /etc
    ~]# ll /etc/test2.txt 
    -rw-r--r--. 1 root root 23 Jul 25 21:36 /etc/test2.txt

     

rm命令:

  • 作用:rm命令可以删除一个目录中的一个或多个文件和目录。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
  • 注意:由于使用rm命令所删除的文件几乎无法恢复,所以建议不用的文件不要直接删除,而是移动至某个专用目录:(模拟回收站)
  • 格式:rm [OPTION]... FILE...
  • 常用选项:
    1 -f:强制删除文件或目录;
    2 -i:交互模式,在删除已有文件或目录前先与用户确认;
    3 -r:递归,将指定的目录下的所有文件与子目录一并处理;
    4 -v:显示详细的执行过程;
    5 -d:删除空目录;

     

  • 使用示例:
  1. 交互式删除文件
    ~]# rm -i /etc/test2.txt 
    rm: remove regular file ‘/etc/test2.txt’? y

     

  2. 递归删除目录:
    ~]# rm -r test
    rm: descend into directory ‘test’? y
    rm: remove regular file ‘test/test_1’? y
    rm: remove regular file ‘test/.test_1.swp’? y
    rm: descend into directory ‘test/test1’? y
    rm: descend into directory ‘test/test1/test2’? y
    rm: remove directory ‘test/test1/test2/test3’? y
    rm: remove directory ‘test/test1/test2’? y
    rm: remove directory ‘test/test1’? y
    rm: remove directory ‘test’? y