红联Linux门户
Linux帮助

Linux中cp mv touch的命令

发布时间:2009-04-15 23:47:07来源:红联作者:kevin_2009
今天学习了cp mv touchcp命令

  该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。

  语法: cp [选项] 源文件或目录 目标文件或目录

  说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

  该命令的各选项含义如下:

  - a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

  - d 拷贝时保留链接。

  - f 删除已经存在的目标文件而不提示。

  - i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

  - p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

  - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

  - l 不作拷贝,只是链接文件。

  需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。



mv 命令简介
  用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同MSDOS下的ren和move的组合。
语法:mv [选项] 源文件或目录 目标文件或目录
说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
命令中各选项的含义为:
  - I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
  - f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
  如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用i选项。

touch 命令用途更新文件的访问和修改时间。
语法touch [ -a ] [ -c ] [ -m ] [ -f ] [ -r RefFile ] [ Time | -t Time ] { File ... | Directory ... }
描述touch 命令更新由 Directory 参数指定的每个目录下的由 File 参数指定的每个文件的访问和修改时间。如果没有指定 Time 变量值,touch 命令就使用当前时间。如果指定了一个不存在的文件,touch 命令就创建此文件,除非指定了 -c 标志。
touch 命令的返回码是时间没有被成功修改的文件数目(包括不存在的文件和没有创建的文件)。
注:任何超出 2038 年(包含2038年)的日期都是无效的。
标志
[table=98%][tr][td=1,1,16%]-a[/td][td=1,1,83%]更改由 File 变量指定的文件的访问时间。不要更改修改时间,除非也指定了 -m 标志。[/td][/tr][tr][td]-c[/td][td]如果文件不存在,那么不要进行创建。没有写任何有关此条件的诊断消息。[/td][/tr][tr][td]-f[/td][td]尝试强制 touch 运行,而不管文件的读和写许可权。[/td][/tr][tr][td]-m[/td][td]更改 File 的修改时间。不要更改访问时间,除非也指定了 -m 标志。[/td][/tr][tr][td]-r RefFile[/td][td]使用由 RefFile 变量指定的文件的相应时间,而不用当前时间。[/td][/tr][tr][td]Time[/td][td]MMDDhhmm[YY] 的格式指定新时间戳记的日期和时间,其中: MM 指定一年的哪一月(从 01 到 12)。 DD 指定一月的哪一天(从 01 到 31)。 hh 指定一天中的哪一小时(从 00 到 23)。 mm 指定一小时的哪一分钟(从 00 到 59)。 YY 指定年份的后两位数字。如果 YY 变量没有被指定,缺省值为当前年份。 [/td][/tr][tr][td]-t Time[/td][td]使用指定时间而不是当前时间。Time 变量以十进制形式 [[CC]YY]MMDDhhmm[.SS] 指定,其中: CC 指定年份的前两位数字。 YY 指定年份的后两位数字。 MM 指定一年的哪一月(从 01 到 12)。 DD 指定一月的哪一天(从 01 到 31)。 hh 指定一天中的哪一小时(从 00 到 23)。 mm 指定一小时的哪一分钟(从 00 到 59)。 SS 指定一分钟的哪一秒(从 00 到 59)。 [/td][/tr][/table]
注:
[list=1][*]touch 命令调用 utime () 子例程来更改所涉及文件的修改和访问时间。当没有真正拥有该文件,即使对文件有写许可权,使用标志时也可能使 touch 命令失败。 [*]当使用 touch 命令时,如果接收到错误消息,不要指定完整路径名 /usr/bin/touch[/list]退出状态该命令返回以下退出值:
[table=98%][tr][td=1,1,5%]0[/td][td=1,1,95%]命令成功执行。所有请求的更改已完成。[/td][/tr][tr][td]>0[/td][td]发生错误。[/td][/tr][/table]
安全RBAC 用户和 Trusted AIX 用户请注意:该命令可以执行特权操作。只有特权用户能够运行特权操作。关于权限和特权的更多信息,请参阅《安全性》中的“特权命令数据库”。要获取与该命令相关的权限和特权的列表,请参阅 /etc/security/privcmds 数据库文件。
示例[list=1][*]要更新文件的访问和修改时间,请输入:
touch program。c这会将 [font=新宋体]program.c[/font] 文件的上次访问和修改时间设置为当前日期和时间。如果 [font=新宋体]program.c[/font] 文件不存在,touch 命令就创建一个同名的空文件。
[*]要避免创建新文件,请输入: [font=新宋体]touch [/font][font=新宋体]-c [/font][font=新宋体]program.c[/font]
[*]要仅更新修改时间,请输入: [font=新宋体]touch [/font][font=新宋体]-m[/font][font=新宋体] *.o[/font]
这会更新当前目录下的以 [font=新宋体].o[/font] 扩展名结尾的文件的上次修改时间(不更新访问时间)。touch 命令经常以此方式使用,来改变 make 命令的结果。 [*]要明确设置访问和修改时间,请输入: [font=新宋体]touch [/font][font=新宋体]-c [/font][font=新宋体]-t [/font][font=新宋体]02171425 program.c[/font]
这会将访问和修改时间设置为当前年份的 2 月 17 日的 14:25(2:25 p.m.)。 [*]要使用另一文件的时间戳记而不用当前时间,请输入: [font=新宋体]touch [/font][font=新宋体]-r [/font][font=新宋体]file1 program.c[/font]
这会将 [font=新宋体]program.c[/font] 文件的时间戳记设置成与 [font=新宋体]file1[/font] 文件一样。 [*]要使用指定时间而不是当前时间处理文件,请输入: [font=新宋体]touch [/font][font=新宋体]-t [/font][font=新宋体]198503030303.55 program.c[/font]
这会将 [font=新宋体]program.c[/font] 文件的时间戳记设置为 1985 年 3 月 3 日上午 3:03:55。[/list]文件
[table=98%][tr][td=1,1,23%]/usr/bin/touch[/td][td=1,1,76%]包含 touch 命令。[/td][/tr][/table]
相关信息date 命令、locale 命令。
utime 子例程。
操作系统与设备管理》中的『目录』描述了文件系统中目录的结构和特征。
操作系统与设备管理》中的『文件』描述了文件、文件类型以及如何命名文件。
操作系统与设备管理》中的『文件和目录访问方式』介绍了文件的所有权和文件与目录的访问权限。
AIX V6.1 通用编程概念:编写并调试程序》中的『了解文件类型』介绍了控制文件的命令。
安全性》中的『Trusted AIX』。
安全性》中的『RBAC』。
文章评论

共有 1 条评论

  1. zidscen 于 2009-04-16 00:02:31发表:

    路过学一点