卡饭网 > linux > 正文

Linux文件管理与bash特性

来源:本站整理 作者:梦在深巷 时间:2016-10-06 02:29:28

  Linux上的文件管理命令

  目录管理命令:

  mkdir:make directories

  mkdir [OPTION]… DIRECTORY…

  -p: 自动按需创建父目录;

  -v: verbose,显示详细过程;

  -m MODE:直接给定权限;

  注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;

  rmdir:remove empty directories

  rmdir [OPTION]… DIRECTORY…

  -p:删除某目录后,如果其父目录为空,则一并删除之;

  -v: 显示过程;

  文件管理命令

  cp命令:copy

  源文件;目标文件;

  单源复制:cp [OPTION]… [-T] SOURCE DEST

  多源复制:cp [OPTION]… SOURCE… DIRECTORY

  cp [OPTION]… -t DIRECTORY SOURCE…

  单源复制:cp [OPTION]… [-T] SOURCE DEST

  如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;

  如果DEST存在:

  如果DEST是非目录文件:则覆盖目标文件;

  如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

  多源复制:cp [OPTION]… SOURCE… DIRECTORY

  cp [OPTION]… -t DIRECTORY SOURCE…

  如果DEST不存在:错误;

  如果DEST存在:

  如果DEST是非目录文件:错误;

  如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

  常用选项:

  -i:交互式复制,即覆盖之前提醒用户确认;

  -f:强制覆盖目标文件;

  -r, -R:递归复制目录;

  -d:复制符号链接文件本身,而非其指向的源文件;

  -a:-dR –preserve=all, archive,用于实现归档;

  –preserv=

  mode:权限

  ownership:属主和属组

  timestamps: 时间戳

  context:安全标签

  xattr:扩展属性

  links:符号链接

  all:上述所有属性

  mv命令:move

  mv [OPTION]… [-T] SOURCE DEST

  mv [OPTION]… SOURCE… DIRECTORY

  mv [OPTION]… -t DIRECTORY SOURCE..

  常用选项:

  -i:交互式;

  -f:force

  rm命令:remove

  rm [OPTION]… FILE…

  常用选项:

  -i:interactive

  -f:force

  -r: recursive

  bash的特性

  命令的执行状态结果

  命令执行的状态结果:

  bash通过状态返回值来输出此结果:

  成功:0

  失败:1-255

  命令行展开

  ~:自动展开为用户的家目录,或指定的用户的家目录;

  {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

  创建/tmp目录下的:a_c, a_d, b_c, b_d

  touch {a,b}_{c,d}

  创建/tmp/mylinux目录下的

  mkdir -pv   /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-      scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

  文件元数据

  文件元数据主要包括权限,大小,inode,属主,属组,access time, modify time, change time,etc…

  文件的元数据可以用stat命令查看。

  touch命令可以修改时间戳:

  touch [OPTION]… FILE…

  -c: 指定的文件路径不存在时不予创建;

  -a: 仅修改access time;

  -m:仅修改modify time;

  -t STAMP

  [[CC]YY]MMDDhhmm[.ss]

  命令别名&引用命令的执行结果

  可以使用alias name=value形式定义命令别名。

  引用命令的执行结果:

  $(COMMAND)

  或`COMMAND`

  练习

  显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

  ls -ld /var/l*[0-9]*[a-z]

  显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

  ls -ld /etc/[0-9]*[^[:digit:]]

  显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

  ls -ld /etc/[^[:alpha:]][a-z]*

  在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

  touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

  复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

  cp -r /etc/p*[^0-9] /tmp/mytest1/

  复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

  cp -r /etc/*.d /tmp/mytest2/

  复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

  cp -r /etc/[lmn]*.conf /tmp/mytest3/

相关推荐