我们平时使用Linux的时候经常遇到这样一个问题,举例有这样一种情况:执行命令
$ cp /etc/apt/sources.list /etc/apt/sources.list.bak
这里面有个问题,明明 /etc/apt/sources 这几个字都是一样的,为什么要打两遍?这样的还算短了,要是更深层的目录,那花的力气可就大了。跟上面例子很相似的情况是:在备份一个文件,重命名一个文件,或是创建一个链接,都要进行类似的操作,重复一个相同的路径。通常比较明智的做法是先 cd 到那个目录,然后在那个目录下进行操作,完后再 cd 回来。不过这样做还是比较麻烦,有没有足不出户的解决方法?答案是肯定的。
Bash 有个功能叫大括号扩展,大括号包围的,用逗号隔开的参数会扩展为独立的多个参数。这样讲您一定懵了,具体一点,上面那个备份文件的例子可以写成:
$ cp /etc/apt/sources.{list,list.bak}
Shell 在解释时会自动将后面的参数扩展成两个,就变成了和上面一样的完整命令。这样就实现了足不出户操作,而前面那一串目录只要打一次就行,连 cd 也免敲了。
其实这个命令还可以再简化,那个 list 也可以并过去的。之前我一直在想,拿什么来代表空白,其实什么都不用写就行了。
$ cp /etc/apt/sources.list{,.bak}
这样逗号前面没东西,那么参数就保持原来的不变,逗号后面的照样扩展。
0
收藏
推荐专栏更多
猜你喜欢
我的友情链接
wget使用感受
python学习——python中执行shell命令
思科路由交换部分命令大全。
vim全局替换命令
MySQL 5.6 警告信息 command line interface can be insecure 修复
linux tee 命令详解
linux sed 替换(整行替换,部分替换)、删除delete、新增add、选取
linux 的date命令及系统时间设置
linux命令行下的ftp 多文件下载和目录下载
vi显示行号的一点小技巧
linux命令eval的用法
多方面来保证Linux服务器的基本系统安全
Linux磁盘IO调度算法
Redis主从+sentinel(哨兵)+keepalived
Ansible AWX基础配置和使用
Kubernetes监控方案之Grafana + Alertmanager + Prometheus
搭建高可用wordpress(keepalived+HAProxy)
NFS服务的用户身份映射
搭建zabbix监控系统


扫一扫,领取大礼包
转载于:https://blog.51cto.com/hover/122006
Ctrl+Enter 发布
发布
取消