(四)目录文件操作相关

创建目录

 mkdir

      [语法]: mkdir [-m 模式] [-p] 目录名

      [说明]: 本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID

      -p,--parents: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

      -v, --verbose: 每次创建新目录都显示信息

    -m, --mode: 设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask

 

创建目录或文件

 touch

    [语法]: touch [-amc] [mmddhhmm[yy]] 文件...

    [说明]: 将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建     的文件。

    -a   或--time=atime或--time=access或--time=use  只更改存取时间。

    -c   或--no-create  不建立任何文档。

    -d  使用指定的日期时间,而非现在的时间。

    -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

    -m   或--time=mtime或--time=modify  只更改变动时间。

    -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

    -t  使用指定的日期时间,而非现在的时间。

     [[CC]YY]MMDDhhmm[.SS]     

       这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch   将把年数CCYY限定在1969--2068之内.MM为月数,        DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.      这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的。

删除目录

 rmdir

     [语法]: rmdir [-p] [-s] 目录名

     [说明]: 本命令用于删除目录

     -p:  删除所有已经为空的父目录

     -s:  当使用-p 选项时,出现错误不提示

     -v, --verbose:  显示指令执行过程 

     [例子]:
     rmdir /tmp/abc 删除目录 /tmp/abc
     rmdir -p /tmp/a/b/c 删除目录 /tmp/a/b/c ,若目录 /tmp/a /b
     及/tmp/a 空,则删除

     [注意]:

     rmdir 目录名 命令不能直接删除非空目录.

     也就是说不能删除有文件的目录

 

删除目录或文件

rm(remove)

    [语法]: rm [-f] [-i] 文件...
      或 rm -r [-f] [-i] 目录名... [文件]

    [说明]rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,       原有文件均保持不变。

    -f, --force:    忽略不存在的文件,强制,从不给出提示。

    -i, --interactive:  进行交互式删除,删除前逐一询问确认。

    -r, -R, --recursive:  指示rm将参数中列出的全部目录和子目录均递归地删除。

    -v, --verbose: 详细显示进行的步骤

         --help:      显示此帮助信息并退出

         --version : 输出版本信息并退出

    [例子]:
     rm file1 删除文件 file1
     rm -i /tmp/* 删除目录 /tmp 下的所有文件
     rm -r /mytmp 递归地删除目录 /mytmp

移动目录或文件

 mv(move)

    [语法]: mv [-f] [-i] 文件1 [文件2...] 目标
    [说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名
    - i, --interactive:  在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止

    - f , --force: 强制,如果目标文件已经存在,不会询问而直接覆盖

    -b :  若需覆盖文件,则覆盖前先行备份

    -u : 若目标文件已经存在,且 source 比较新,才会更新(update)

    -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
    [例子]:
    mv file1 file2 将文件 file1 改名为 file2

    mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下

    mv log1.txt log2.txt log3.txt test3

    mv -t /opt/soft/test/test4/ log1.txt log2.txt  log3.txt 

    mv log1.txt -b log2.txt  文件被覆盖前做简单备份,前面加参数-b 

   说明:

   -b 不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。

   --backup该选项指定如果目标文件存在时的动作,共有四种备份策略:

   1.CONTROL=none或off : 不备份。

   2.CONTROL=numbered或t:数字编号的备份

   3.CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:

   执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。

   4.CONTROL=simple或never:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

复制目录或文件

cp(copy)

    [语法]: cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标
    [说明]: 将文件1(文件2 ...)拷贝到目标上,目标不能与文件同名, 若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存           在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。
     - i , --interactive : 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止

      -p(小写), --no-dereference :   不跟随源文件中的符号链接

     - p(大写) , --preserve : 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表, 但不拷贝UID 及 GID

      -R, -r, --recursive : 复制目录及目录内的所有项目。 若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时目标必须为目录

      -a, --archive :   等于-dR --preserve=all

       --backup[=CONTROL    为每个已存在的目标文件创建备份

     -b: 类似--backup 但不接受参数

      --copy-contents        在递归处理是复制特殊文件内容

     -d : 等于--no-dereference --preserve=links

     -f, --force :  如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)

     -n, --no-clobber:   不要覆盖已存在的文件(使前面的 -i 选项失效)               

     -H  : 跟随源文件中的命令行符号链接

     -l, --link : 链接文件而不复制

    -L, --dereference : 总是跟随符号链接

 

    [例子]:
    cp file1 file2 将文件 file1 拷贝到文件 file2
    cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下
    cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp

改变当前目录

cd(change directory)

   [语法]: cd [目录]

   [说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME 作为其参数,$HOME 一般为注册时进入的路径。

   cd ~USERNAME: 进入指定用户的家目录

   cd -:在当前目录和前一次所在的目录之间来回切换

   cd : 回到注册进入时的目录

   cd /tmp : 进入 /tmp 目录

   cd ../ : 进入上级目录

显示当前目录内容

ls (list)

     [语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]

     [说明]: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列。

     -a,--a: 列出目录下的一切文件,包含以 . 开头的隐含文件

                  . 表示当前目录
                  .. 表示父目录

     -A,--almost-all: 显现除 “.”和“..”外的一切文件

     -d: 显示目录自身属性

     -l : 列出文件的具体信息(简写命令:ll)        

          文件类型:
            -:普通文件 (f)
            d: 目录文件
            b: 块设备文件 (block)
            c: 字符设备文件 (character)
            l: 符号链接文件(symbolic link file)
            p: 命令管道文件(pipe)
            s: 套接字文件(socket)

          文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--
          文件硬链接的次数
          文件的属主(owner)
          文件的属组(group)
          文件大小(size),单位是字节
          时间戳(timestamp):最近一次被修改的时间
          访问:access
          修改:modify,文件内容发生了改变
          改变:change,metadata,元数据

     -F :对可执行文件添加一个*号,为目录添加一个/号,为符号链接添加一个@号 

     -r : 逆序显示

     -t : 根据修改时间排序

     -R: 递归列出一切子目录下的文件

     -m: 横向输出文件名,并以“,”作分格符。

     -i :  输出文件的 i 节点的索引信息。

显示当前工作目录

pwd(Printing Working directory)

posted @ 2014-10-08 18:59  小彩笔  阅读(171)  评论(0)    收藏  举报