Unix_06_文件系统高级操作_1

8.4  文件操作命令  见书之P159

   1  复制文件:cp 命令

    cp(copy)命令用来创建文件的副本。可以将文件从一个目录复制到另一个目录,来制作文件的备份。

    命令选项:

    UNIX    Linux对应的选项    功能说明

    ---------------------------------------------------------------------------------

    -b      --backup       如果指定的文件已存在,就创建它的备份

    -i      --interactive      如果目标文件已存在,要求确认

    -r      --recursive      将目录复制到新的目录

            --verbose        解释操作

            --help        显示帮助页并退出

    ---------------------------------------------------------------------------------

    例:将文件myfile创建一个副本myfile.copy

      $cp myfile myfile.copy [return] ............  创建文件的副本myfile.copy

      $ls [return] .......................................  用列表命令查看,可以看到当前目录中刚创建的文件副本

    例:假设当前目录下有aa子目录与test文件,下面命令将test文件备份到aa子目录下

      $cp test aa [return] ...........................  将test文件备份到aa子目录下

      $ls aa [return] ..................................  列表子目录查看,可以看到aa目录下多了test文件

    例:将当前目录下的test1 test2两个文件拷到aa子目录下

      $cp test1 test2 aa [return] ..................  将test1、test2两个文件拷到aa子目录下

      $ls aa [return] ...................................  列表aa子目录查看

    -b 选项:  如果在目标目录下已经存在要复制的文件,-b(backup)选项就创建该文件的副本。

          这样可以防止用户覆盖一个已经存在的文件。

      例:略---macbook中的cp命令没有-b选项,所以略了

    -i 选项:  -i选项使用户不能覆盖已有的文件,如果目标文件已经存在,就要求确认。

      例:将test文件拷到子aa子目录下,而aa目录下已经有test文件

        $cp -i test aa [return] .......................  将test文件拷到aa子目录下

        overwrite aa/test? (y/n [n]) _ ............  提示信息:是否覆盖aa/test文件,选择y/n, 默认是n

    -r 选项:  将目录及其下的内容复制到目标目录下

      例: 将当前目录的aa子目录拷到bb子目录下

        $cp -r aa bb [return] ........................  将aa子目录及其下内容复制到bb子目录下

        $ls bb [return] ................................  列表bb子目录

  2  移动文件: mv 命令

      使用mv命令将文件从一个地方移到另一个地方,或者改变文件名或目录名

      例:将当前目录下的test文件改名为test.old

        $mv test test.old [return] ..................  将test文件改名为test.old 

        $ ....................................................  命令提示符

      注:cp和mv命令都接受两个以上的参数,但最后一个参数必须是目录。

      例:将test1、test2两个文件移到bb子目录下

        $mv test1 test2 bb [return] ..............  将test1、test2两个文件移到bb子目录下

        $ ...................................................  命令提示符

      例:改变目录名,假设当前目录下有bb子目录,下面将其改名为cc目录

        $mv bb cc [return] ..........................  将bb子目录改名为cc

        $ ...................................................  命令提示符

      

  mv命令选项    Linux对应的选项      功能

---------------------------------------------------------------------------------

  -b        --backup          如果指定文件已存在,就创建它的备份

  -i         --interactive         如果目标文件已存在,要求确认 

  -f         --force           如果目标文件已存在,直接删除,不要求确认

  -v        --verbose           解释操作

           --help             显示帮助页并退出

           --version          显示版本信息并退出

---------------------------------------------------------------------------------

3  链接文件: ln 命令 

  ln命令在已经存在文件和新文件名之间创建新链接(名字)。这意味着可以为已存在的文件创建别外的名字,从而使用不同的名字引用相同的文件。

相当于原来的文件又有了一个别名。

  例:  $ls -l [return] ........................................  列表详细信息 

     total 8                     文件总体大小8个块,每块512字节 

     -rw-r--r--  1  cnyxj  staff  13  6  3  21:51  test 

     $ln test test_ln [return] ..........................  为test建一个新名字test_ln, 注意不是新建一个文件

       $ls -l [return] ........................................  列表详细信息

     total 16                      

    -rw-r--r--  2  cnyxj  staff  13  6  3  21:51  test

    -rw-r--r--  2  cnyxj  staff  13  6  3  21:51  test_ln

  注意:第一次列表中,第二列数字( -rw-r--r--后面跟的数字)是1, 表示链接数为1,而第二次列表中链接数显示为2

  ln跟cp不同,cp在物理上将文件复制到另一个地方,用户有两个独立的文件。修改其中的一个文件,另一个文件不受影响。

  而ln命令只是为同一个文件创建了另一个文件名,而没有创建新文件,如果改变了其中任何一个链接文件的内容,不管用户引用的是它的哪一个名字,这些文件都会发生改变。

  例: 假设原来test文件的内容为“this is test"

    $cat >> test [return] ................................  在test文件尾部添加内容

    plus new ..................................................  添加"plus new"

    [Ctr+d] ....................................................  用ctr+d键退出

    $cat test_ln [return] ..................................  显示test_ln文件内容,注意不是test文件名

    this is test

    plus new

    $ .............................................................  命令提示符

   可以看到,虽然修改的是test,但test_ln的内容也随之改变了,因为它们其实都是指向同一个文件。

4  计算字数:wc 命令

  wc 命令计算指定的一个或多个文件中的行数、字数或字符数。

  例:  $cat test [return] ..................................  显示刚才那个test文件

      this is test

      plue new

      $wc test[return] ..................................  计算test中的行数、字数和字符数

        2  5  22  test            2行5个字22个字符,应该是把空格与换行符也算在内的

      $ .......................................................  命令提示符

  如果wc后面没有文件名,wc就从标准输入设备(键盘)获得输入。

  例:  用wc计算键盘输入的行数、字数和字符数

      $wc [return] .......................................  不带文件名的wc命令

      what ?

      [ctr+d] ...............................................  退出输入

        1  2  7               输入1行2个字7个字符,因为问号与前面有空格,所以算两个字 

      $ .......................................................  命令提示符

  例:  计算文件的行数字数字符数

      $ wc test test_ln [return] .....................  指定了两个文件名

        2  5  22  test

        2  5  22  test_ln

         4  10  44  total

      $ ........................................................  命令提示符

  

  wc的选项

    UNIX选项     Linux对应的选项    功能说明

 --------------------------------------------------------------------------- 

    -l          --lines        报告行数

    -w          --words        报告字数

    -c         --chars         报告字符数

              --help         显示帮助页并退出

              --version        显示版本信息并退出 

 ---------------------------------------------------------------------------- 

  可以将wc命令计算的结果重定向到新文件中

  例:  $wc -w test test_ln > test.wc [return] ............  将test test_ln两文件的字数重定向到test.wc文件

      $cat test.wc [return] .....................................  显示test.wc的内容

        5  test

        5  test_ln

        10  total

      $ ................................................................  命令提示符 

 

    

   

       

原文地址:https://www.cnblogs.com/cnyxj/p/4540990.html