从命令行管理文件之使用命令行工具管理文件

从命令行管理文件之使用命令行工具管理文件

命令行文件管理

文件管理涉及创建、删除、复制和移动文件。此外,也可创建、删除、复制和移动目录,以帮助有条理地整理文件。

文件管理命令

活动单一来源(注)多来源(注)
复制文件cp file1 file2cp file1 file2 file3 dir(4)
移动文件mv file1 file2(1)mv file1 file2 file3 dir(4)
删除文件rm file1rm -f file1 file2 file3 dir(5)
创建目录mkdir dirmkdir -p par1/par2/dir(6)
复制目录cp -r dir1 dir2(2)cp -r dir1 dir2 dir3 dir4(4)
移动目录mv dir1 dir2(3)mv dir1 dir2 dir3 dir4(4)
删除目录rm -r dir1(2)rm -rf dir1 dir2 dir3(5)
注:(1)结果为重命名。(2)要使用“递归”选项处理来源目录。(3)如果dir2存在,则结果为移动。如果dir2不存在,则结果为重命名。(4)最后一个参数必须是目录(5)请谨慎使用“force”选项,系统将不会提示您确认操作。(6)使用“创建”父级选项时应小心;无法捕获键入错误。

从命令行管理文件之使用路径名扩展匹配文件名

文件通配:路径名扩展

Bash shell 具有一个路径名匹配功能,以前叫做通配。Bash通配功能通常称为“模式匹配”或“通配符”,可以使大量文件变得更加轻松。使用元字符“扩展”来匹配要寻找的文件名和路径名,可以一次性针对几种的一组文件执行命令。

1.模式匹配

通配是一种shell命令解析操作,它将一个通配符模式扩展到一组匹配的路径名。在执行命令之前,命令行元字符由匹配列表替换。不返回匹配项的模式(尤其是方括号括起的字符类),将原始模式请求显示为字面上的文本。下列常见的元字符和模式类。

模式匹配项
*由零个或多个字符组成的任何字符串
任何一个字符
~当前用户的主目录
~username用户username的主目录
~+当前工作目录
~-上一工作目录
[abc…]括起的类中的任何一个字符
[!abc…]不在括起的类中的任何一个字符
[^abc…]不在括起的类中的任何一个字符
[[:alpha:]]任何字母字符(1)
[[:lower:]]任何小写字符(1)
[[:upper:]]任何大写字符(1)
[[:alnum:]]任何字母字符或数字(1)
[[:punct:]]除空格和字母数字以外的任何可打印字符(1)
[[:digit:]]任何数字,即0-9(1)
[[:space:]]任何一个空白字符;可能包含制表符、换行符或回车符,以及换页符和空格(1)
注意预设的POSIX字符类;针对当前区域而调整。

2.波形符扩展

波形符(~)后斜杠分隔符时可匹配当前用户的主目录。当后接一个字符串直到斜杠时,如果可以找到匹配项,则它被解释为用户名。如果找不到匹配的用户名,则返回实际波形符加上该字符串。

[sutdent@desktopX glob]$ ls ~/glob
able  alf  baker  barvo  cast  charlie  delta  dog  easy  echo
[student@desktopX glob]$ echo ~/glob
/home/student/glob
[studnet@desktopX glob]$	

3. 大括号扩展

大括号扩展用于生成任意字符串。大括号包含字符串的逗号分隔列表或顺序表达式。结果包含大括号定义之前或之后的文本。大括号扩展可以相互嵌套。

[student@desktopX glob]$ echo {Sunday,Monday,Tuesday,Wednesday} . log
Sunday.log  Monday.log  Tuesday.log  Wednesday.log
[student@desktopX glob]$ echo file{1..3} . txt
file1.txt  file2.txt  file3.txt

4. 命令替换

命令替换允许命令输出替换命令本身。当命令包含前导美元符号和括号 ( c o m m a n d ) 或 者 反 引 号 ‘ c o m m a n d ‘ 时 , 就 会 发 生 命 令 替 换 。 (command)或者反引号`command`时,就会发生命令替换。 commandcommand(command)形式可以互相嵌套多个命令扩展。

[student@desktopX glob]$ echo Today is date +%A.
Today is Wednesday.
[student@desktopX glob] echo The time is (date +%M) minutes past $(date +%1%p).
The time is 26 minutes past 11AM.
[student@desktopX glob]$

5. 防止参数被扩展

在Bash shell 中,许多字符有特殊含义。为了忽略元字符的而述含义,使用引用和转义来阻止它们被shell扩展。反斜杠(\)是Bash中的一个转义字符,防止其后的一个字符被特殊解释。如果要保护较长的字符串,则使用单引号(’)或双引号(")来括起字符串。

使用双引号可以阻止通配和shell扩展,但依然允许命令和变量替换。变量替换在概念上与命令替换一样,但可能使用可选的大括号语法。

使用单引号则可以按字面解释翻译所有的文本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值