欢迎转载,转载请注明出处:http://blog.csdn.net/hust_superman/article/details/23926213

----------------------------------------------------cp命令-----------------------------------------------------------------

cp 是一个用于复制文件 的 UNIX 命令。文件可以被复制到相同目录下,也可以复制到其他完全不同的目录
中(甚至复制到不同的文件系统或是硬盘中。)。如果文件将被复制到相同的目录中,那么目标文件文件
必须使用不同于原文件的文件名;在其他情况下,目标文件的名称允许使用与原文件相同或不同的名称。
原始的文件不会被改变。

参数

-f (强制) – 在目标文件因没有写权限而无法打开时删除目标文件。这一移除动作先于所有的cp命令复制动作。

-L (间接引用) – 使cp命令跟随符号链接,这样cp命令将复制符号链接指向的文件而不是符号链接到目的位置。

-i (交互) – 提示您将要被覆盖之文件的文件名。当目标目录或是目标文件中包含一个与原文件(或目录)名字

     相同的文件(或目录)时,交互就会发生,如果你输入 'y' 或者区域语言中等价于 'y'的字符,cp操作将覆盖

      目标文件,其余的任意回答都会避免目标文件被原文件覆盖。

-p (保持) – 对于每个原文件(或目录),在复制时也复制下述特性:

  • 最后一次修订时间最后一次访问时间
  • 所属用户ID所属组ID(仅在有权限如此做时)。
  • 文件权限位以及SUIDSGID权限位。

-R or -r (递归) – 复制目录(递归地复制目录中的所有内容)

用法

将文件复制为另一文件:

 cp [-f] [-H] [-i] [-p][--] 源文件 目标文件

将文件复制到一目录下:

 cp [-f] [-H] [-i] [-p] [-r | -R] [--] 源文件 ... 目标目录

将目录复制为另一目录(必须使用参数 -r 或 -R):

 cp [-f] [-H] [-i] [-p] [--] { -r | -R } 源目录 ... 目标目录

示例

欲复制原文件的一份副本,执行:

     cp prog.c prog.bak

这一操作把文件prog.c复制为prog.bak。如果prog.bak文件不存在,cp命令将创建此文件。如果目标文件已存在,

cp命令将用原文件的内容替代目标文件中的内容。

欲复制当前工作目录中的文件到另外一目录中,执行:

     cp jones /home/nick/clients

这一操作将 jones 文件复制到 /home/nick/clients/jones。

欲将文件复制为新的文件,并保留修改日期与相关的访问控制权限,执行:

     cp -p smith smith.jr

操作将smith文件复制为smith.jr文件。此时系统将给与smith.jr与smith文件相同的修改日期和时间而并不使用

当前的系统时间。smith.jr文件同时也继承了smith文件的访问控制保护。

欲将某目录中所有文件复制到新目录中,执行:

     cp /home/janet/clients/* /home/nick/customers

这一操作仅将clients目录中的文件复制到customers目录中。

欲将一个目录,包括其包含的所有文件与子目录复制到另一目录中,执行:

     cp -R /home/nick/clients /home/nick/customers

这一复制将clients目录以及其中包含的所有文件、子目录与子目录中的文件复制到customers/clients目录下。

 注意在原目录的结尾无斜杠符:如果你在GNU基础的系统上执行cp -R /home/nick/clients/ /home/nick/customers

这与原目录没有加结尾斜杠符的效果相同。 但如果你在BSD基础系统上执行相同的命令,这将复制所有client目录

中的内容,而不是client目录本身。

欲将复制指定的一些文件到另一目录中,执行:

     cp jones lewis smith /home/nick/clients

这一操作复制当前工作目录下的 jones、lewis和smith 文件到 /home/nick/clients 目录。

欲使用模式匹配字符集来复制文件,执行:

     cp programs/*.c .

这一操作将programs目录下所有以 .c 结尾的文件都复制到当前目录下,当前目录用单个点符号 . 表示。

在 .c 和最后的 . 之间必须用空格隔开。

将文件复制到另一已存在文件的过程是:将已存在文件以更新模式打开(使用这一模式需要拥有目标文件的写入权限)。

操作的结果是目标文件保留了其原来拥有的权限位。

-------------------------------------------------------------ls命令---------------------------------------------------------------------------------

ls是一个由POSIX单一Unix标准规范的命令,在Unix类Unix系统中都有实现。ls是英文list segment的缩写,
用于列出文件,是Unix系统中使用非常频繁的命令。

Unix类Unix操作系统中都有当前目录的概念,也即程序目前在目录树中的位置。

当不加参数运行时,ls列出当前目录下的所有文件和目录名。如果以目录名作为参数,则会列出该目录下的文件。

用户也可以指定多个文件和目录作为参数,ls则会列出所有指定的文件和目录中的文件名。

以 "."(圆点)开头的目录在一般情况下不会被列出。用户可以加 -a 选项查看所有文件。

不加参数时,ls仅仅列出文件和目录的名称,不加任何修饰。这通常让人很难区分文件的类型、大小、权限等属性。

显示文件常用信息的一些参数如下:

  • -l(long)长格式,显示文件类型、权限、硬链接的数目、文件拥有者、文件所在的、大小、日期和文件名。
  • -F 在不同类型的文件的文件名结尾追加一个字符以示区别。可执行文件后加"*",目录后加"/",管道文件后加"|",
  • 套接字文件后加"=",普通文件没有后缀。
  • -a(all)显示所有文件,包括以 . 开头的文件名(默认不显示)。
  • -R(recursive)迭代显示目录下所有的子目录。ls -R/会显示文件系统中的所有文件。
  • -d(directory)显示目录本身的信息,而不是列出目录下的文件。

在某些环境下,使用参数"--color"(GNU版)或者"-G"(FreeBSD版)后,ls会根据文件类型输出不同色彩的格式。

GNU版的ls根据文件的类型、扩展名和使用权限来决定颜色,而FreeBSD版的ls仅仅检查文件类型和使用权限。

使用上述彩色选项时,输出示例如下:

 brw-r--r--    1 unixguy staff 64,  64 Jan 27 05:52 block         
 crw-r--r--    1 unixguy staff 64, 255 Jan 26 13:57 character     
 -rw-r--r--    1 unixguy staff     290 Jan 26 14:08 compressed.gz 
 -rw-r--r--    1 unixguy staff  331836 Jan 26 14:06 data.ppm      
 drwxrwx--x    2 unixguy staff      48 Jan 26 11:28 directory     
 -rwxrwx--x    1 unixguy staff      29 Jan 26 14:03 executable    
 prw-r--r--    1 unixguy staff       0 Jan 26 11:50 fifo          
 lrwxrwxrwx    1 unixguy staff       3 Jan 26 11:44 link -> dir   
 -rw-rw----    1 unixguy staff     217 Jan 26 14:08 regularfile   

ls有大量的选项,具体的用法请参考ls的手册页

使用色彩来区分文件类型的功能已被禁用,默认设置和 --color=never 同时禁用了它。
使用 --color=auto 选项,ls 只在标准输出被连至终端时才生成颜色代码。
LS_COLORS 环境变量可改变此设置,可使用 dircolors 命令来设置。

下面的例子演示了不同参数下ls的使用。

$ pwd
/home/unixguy
$ ls -l
drwxr--r--   1 unixguy  editors   4096  drafts
-rw-r--r--   1 unixguy  editors  30405  edition-32
-r-xr-xr-x   1 unixguy  users     8460  edit
$ ls -F
drafts/
edition-32
edit*

------------------------------------------------------------ln命令---------------------------------------------------------------------------------


ln 是一个用于创建链接文件的标准 Unix 命令

通过链接文件,不同的文件名可以指向同一个文件。

ln 可以创建两种类型的链接文件:

  1. 符号链接,也称软链接,这是指向另一个不同路径文件的一个符号路径。
  2. 硬链接,这是一个存储了链接建立时它所指向文件的实际数据的文件副本。

从以下命令示例可看出两种链接文件的区别:

$ echo '文件内容' > oringinal.file
$ ln oringinal.file hardlink.file
$ ln -s oringinal.file softlink.file
$ cat softlink.file
文件内容
$ rm oringinal.file
$ cat softlink.file
cat: softlink.file: 没有那个文件或目录
$ cat hardlink.file
文件内容

原始文件被删除后,符号链接将失效,访问软链接时,会提示找不到文件,但硬链接文件还在,而且还保存有原始文件的内容。

ln 可以用两种方式使用。第一种,是第一个参数指定原始文件,第二个参数指定链接文件;第二种,指定多于两个选项,应该先是多个原始文件(或目录),最后指定一个目录,所有原始文件(或目录)的链接将会被创建于最后指定的目录里。在后一种方式中,ln 命令的行为和具体的程序实现有关。

用法:ln [选项]... [-T] 目标 链接名(第一种格式)
 或:ln [选项]... 目标 (第二种格式)
 或:ln [选项]... 目标... 目录 (第三种格式)
 或:ln [选项]... -t 目录 目标... (第四种格式)
在第一种格式中,创建指定名称且指向指定目标链接。
在第二种格式中,在当前目录创建指向目标位置的链接。
在第三、四种格式中,在指定目录中创建指向指定目标的链接。
默认创建硬链接,当使用--symbolic 时创建符号链接。
当创建硬链接时每个指定的目标都必须存在。符号链接可以指向任意的位置,
当链接解析正常时,将其解析为一个与其父目录关联的链接。


长选项必须使用的参数对于短选项时也是必需使用的。
      --backup[=CONTROL] 为每个已存在的目标文件创建备份文件
  -b 类似--backup,但不接受任何参数
  -d, -F, --directory 创建指向目录的硬链接(只适用于超级用户)
  -f, --force 强行删除任何已存在的目标文件
  -i, --interactive 删除文件前进行确认
  -L, --logical 将硬链接创建为符号链接引用
  -n, --no-dereference 如果目的地是一个链接至某目录的符号链接,会将
该符号链接当作普通文件处理,先将该已存在的链
接备份或删除
  -s, --symbolic 创建符号链接而非硬链接
  -S, --suffix=后缀 自行指定备份文件的后缀
  -t, --target-directory=目录 在指定目录中创建链接
  -T, --no-target-directory 将链接名称当作普通文件
  -v, --verbose 链接前先列出每个文件的名称
      --help 显示此帮助信息并退出
      --version 显示版本信息并退出


备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:


使用 -s 选项会忽略 -L 和 -P。
否则当源为一个符号链接(默认-P)时,会由最后指定的一个选项来控制行为。

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份


Logo

更多推荐