Linux上的常用文件管理命令
mkdir
mkdir:make directories,此命令用来创建一个空目录
语法格式:mkdir [OPTION] … DIRECTORY…
常用方法:
-
-p:用来创建一个连续的空目录;
-
-v:verbose,用来显示创建的详细过程;
-
-m:MODE,用来分配目录的权限;(极少会用到)
注意:路径的基名方为命令的作用对象;基名之前的路径必须存在。
示例:
rmdir
rmdir:remove empty directories,此命令用来删除一个空目录;
语法格式:rmdir [OPTION] … DIRECTORY …
常用方法:
-
-p:删除某个目录后,如果其父目录为空,则一并删除;
-
-v:用来显示删除操作的详细过程;
示例:
tree
tree:以倒置的树状结构来显示其目录结构
语法格式:tree [options] … [directory] …
常用方法:
-
tree:显示目录的全部层级结构
-
tree -L:指定要显示的目录层级
示例:
cp
cp:复制文件或目录;
语法格式:
单源复制:cp [option]…[T]…SOURCE DEST
多源复制:cp [option]…SOURCE…DIRECTORY
cp [option]…-t DIRECTORY SOURCE…
说明:单源复制模式下
- 如果目标不存在:则事先创建此文件,并复制源文件的数据流到目标文件中;
- 如果目标存在:假如目标是非目录文件,则覆盖目标文件;
- 假如目标是目录文件,则先在目标目录下创建一个与源文件同名的文件,并复制其数据流;
常用选项:
-
-i:交互式复制,即覆盖之前提醒用户确认;
-
-f:强制复制目标文件;
-
-r,-R:递归复制目录;
-
-d:复制符号链接文件本身,而并非指向源文件;
-
a:-dR --preserve=all,archive,用于实现归档;
元数据表:
--preserve=
- mode:权限
- ownership:属主和属组
- timestamps:时间戳
- context:安全标签
- xattr:扩展属性
- links:符号链接
- all:上述的所有属性
示例:
mv
mv:move,移动文件或目录
语法格式:
mv [OPTION]…[-T] SOURCE DEST
mv [OPTION]…SOURCE…DIRECTORY
mv [OPTION]…-t DIRECTORY SOURCE
常用方法:
-
-i:交互式移动
-
-f:force,强制性移动
示例:
rm
rm:remove,删除文件或目录
语法格式:rm [OPTION]…FILE…
常用选项:
-
-i:交互式;
-
-f:force,强制删除;
-
-r:recursivev,递归删除目录
建议:所有不用的文件不要直接删除,而是移动到某个专用的目录下;(模拟回收站)
示例:
Bash的工作特性
Bash的基础特性
命令补全机制:
Shell程序在接受到用户执行命令的请求时,在分析完成之后,最左侧的字符串会被当作命令;
命令查找机制:
查找内部命令时,根据PATH环境变量中设定的目录,从左至右逐个搜索目录下的文件名;
~]# echo $PATH**
如果给定的大头字符串能唯一标识某命令程序文件,则直接不全;
如果不能唯一表示某个命令程序文件,敲中两次tab,会给出列表进行选择;
路径补全:
在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件;如果能唯一标 识,一次tab键补全;不然击中两次tab,给出列表选择;
Bash的基础特性之命令行展开
两个常见符号:~, { }
-
~:自动展开为用户的家目录,或指定的用户的家目录;
-
{ }:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例:/tmp/{a,b}等价于/tmp/a /tmp/b
Bash的基础特性之命令的执行状态结果
命令执行的状态结果:
Bash通过状态的返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
示例
命令正常执行时,有的还会有命令返回值;根据命令及其功能的不同,结果各不相同;
Bash基础特性之引用
强引用:‘ ‘
弱引用:“ ”
命令引用:``
Bash基础特性之快捷键
- Ctrl+a:跳转至命令行行首
- Ctrl+e:跳转至命令行行尾
- Ctrl+u:删除行首至光标所在处之间的所有字符
- Ctrl+k:删除光标所在处至尾的所有字符
- Ctrl+l:清屏,等价于clear命令
Bash的基础特性之文件名通配
globbing:文件名通配(整体文件名匹配,而非部分)
匹配模式:元字符
- *:匹配任意长度的任意字符
例:pa* , * pa, * pa, * p * a**
示例:
- ?:匹配任意单个字符
例:Pa?, ??pa, p?a, p?a?
示例:
- [ ]:匹配指定范围内的任意单个字符
几种特殊的格式:
[a-z], [A-Z], [0-9], [a-z0-9]
1.[[:upper:]]:所有大写字母
2.[[:lower:]]:所有小写字母
3.[[:alpha:]]:所有字母
4.[[:digit:]]:所有数字
5.[[:alnum:]]:所有的字母和数字
6.[[:space:]]:所有空白字符
7.[[:punct:]]:所有标点符号
8.[^]:匹配指定氛围外的任意单个字符**
例:[^[:upper:]] [^0-9] [^[:alnum:]]
示例:
文件的元数据信息
文件的两类数据
-
元数据:metadata,文件的属性数据
-
数据:data,文件的实际数据
元数据信息
- File:文件或目录的路径
- Size:文件的大小
- Access:文件类型,属主,属组和其他用户的权限
- Uid:文件的属主ID
- Gid:文件的属组ID
…….
Stat命令:
Stat:display file or file system status
语法格式:stat FILE ….
示例:
时间戳信息
- access time :文件最近一次的访问时间
- modify time :文件最近一次的修改时间
- change time :文件属性最近一次改动的时间
touch命令
touch:change file timestamps
语法格式:touch [OPTION]…FILE…
常用方法:
-
-c:指定的文件路径不存在时不予创建
-
-a:仅修改access time
-
-m:仅修改modify time
-
-t:stamp [[CC]YY]MMDDhhmm[.ss]
定义命令的别名
alias命令
alias:此命令用来定义一个命令的别名,可以给命令取一个新的名字。
语法格式:alias NAME = ‘COMMAND
注意:此命令只对当前的shell进程有效
有定义别名就有撤销别名:unalias NAME
练习示例
命令行展开功能
- 创建/tmp目录下的:a_c, a_d, b_c, b_d
完成命令:mkdir -v {a, b}_{c, d}
-
创建/tmp/mylinux目录下的树结构
文件名通配
- 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可有其他字符)的文件或目录。
完成命令:ls /var/l*[a-z]
- 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
完成命令:ls /etc/[0-9]*[^0-9]
- 显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。
完成命令:ls /etc/[^[:alpha:]][a-z]
- 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
完成命令:mkdir -v /tmp/tfile-$(date +%Y-%m-%d-%H-%M-$S)
- 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录下。**
完成命令:cp -rv /etc/p*[^0-9] /tmp/mytest1
- 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
完成命令:mkdir /tmp/mytest2
cp -rv /etc/*.d /tmp/mytest2
- 复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
完成命令:mkdir /tmp/mytest3
cp -rv /etc/{l,m,n}*.conf /tmp/mytest3
网友评论