我们平时使用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}

这样逗号前面没东西,那么参数就保持原来的不变,逗号后面的照样扩展
花括号用来匹配一组用逗号分隔的字符串中的任一个。左花括号之前的所有字符称为前文(preamble),右花括号之后的所有字符称为后文(preamble)。前文和后文都是可选的。花括号中不能包含不加引号的空白符。样例如下:

1 在/usr/local/src/bash目录下创建4个新目录,它们分别为:old,new,dist和bugs

$ mkdir /usr/local/src/bash/{old,new,dist,bugs}

2 打印指令


  1. $ echo {mam,pap,ba}a
  2.     mama papa baa
  3. $ echo post{script,office,ure}
  4.     postscript postoffice posture
文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux29068 人正在系统学习中

[转帖]linux 下 {}大括号的用法的更多相关文章

  1. Linux下find命令用法详解

    Linux下find命令用法详解   学神VIP烟火 学神IT教育:XueGod-IT   最负责任的线上直播教育平台   本文作者为VIP学员 烟火   第一部分:根据文件名查找   1.在当前目录 ...

  2. [转帖]Linux下fork函数及pthread函数的总结

    Linux下fork函数及pthread函数的总结 https://blog.csdn.net/wangdd_199326/article/details/76180514 fork Linux多进程 ...

  3. [转帖]linux下的CPU、内存、IO、网络的压力测试

    linux下的CPU.内存.IO.网络的压力测试 https://www.cnblogs.com/zhuochong/p/10185881.html 一.对CPU进行简单测试: 1.通过bc命令计算特 ...

  4. [转帖]Linux date命令的用法(转)

    Linux date命令的用法(转) https://www.cnblogs.com/asxe/p/9317811.html 1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与 ...

  5. [转帖]Linux下主机间文件传输命令

    Linux下主机间文件传输命令 https://yq.aliyun.com/articles/53631?spm=a2c4e.11155435.0.0.580ce8ef4Q9uzs   SCP命令: ...

  6. [转帖]linux下CPU、内存、IO、网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具

    linux下CPU.内存.IO.网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具 https://blog.51cto.com/hao360/1587165 linux_python关 ...

  7. Linux下diff命令用法详解

    大家好,我是良许. 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点.在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也 ...

  8. [转] Linux下防火墙iptables用法规则详及其防火墙配置

    from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...

  9. Linux下scp的用法

    scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令.有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要 ...

  10. [转帖]linux下的X server:linux图形界面原理

    linux下的X server:linux图形界面原理 https://www.cnblogs.com/liangxiaofeng/p/5034912.html linux下的X server:lin ...

随机推荐

  1. GaussDB(DWS)函数不同写法引发的结果差异

    本文分享自华为云社区<GaussDB(DWS)函数结果差异案例之greatest>,作者: 你是猴子请来的救兵吗. GaussDB(DWS)支持多种兼容模式,为了兼容目标数据库,各模式之间 ...

  2. 华为云IoT设备接入服务全体验

    摘要:华为云IoT设备接入服务,海量设备,一键接入,你值得拥有! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之 华为云IoT设备接入服务全体验>,原文作者:启明 ...

  3. 一文带你熟知ForkJoin

    摘要:ForkJoin将复杂的计算当做一个任务,而分解的多个计算则是当做一个个子任务来并行执行. 本文分享自华为云社区<[高并发]什么是ForkJoin?看这一篇就够了!>,作者:冰 河. ...

  4. 火山引擎 DataLeap:从短视频 APP 实践看如何统一数据指标口径

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 短视频正在成为越来越多人发现世界的窗口,其背后的创作者生态建设是各大短视频 APP 不可忽视的重要组成部分. 为了 ...

  5. Solon Web 开发:二、开发知识准备

    1.约定 //资源路径约定(不用配置:也不能配置) resources/app.yml( 或 app.properties ) #为应用配置文件 resources/WEB-INF/static/ 或 ...

  6. 自然语言处理 Paddle NLP - 机器同传技术及应用-理论

    基础 自然语言处理(NLP) 自然语言处理PaddleNLP-词向量应用展示 自然语言处理(NLP)-前预训练时代的自监督学习 自然语言处理PaddleNLP-预训练语言模型及应用 自然语言处理Pad ...

  7. 大数据-业务数据采集-FlinkCDC 读取 MySQL 数据存入 Kafka

    目录 作用 app 产生各层数据的 flink 任务 bean 数据对象 common 公共常量 utils 工具类 app.ods.FlinkCDC.java package com.atguigu ...

  8. python 读取数据调翻译更新表字段

    import time import requests import pymysql import datetime import random from hashlib import md5 imp ...

  9. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第五章 优化程序性能

    写程序最主要的目标就是使它在所有可能的情况下都正确工作.一个运行得很快但是给出错误结果的程序没有任何用处.程序员必须写出清晰简洁的代码,这样做不仅是为了自己能够看懂代码,也是为了在检査代码和今后需要修 ...

  10. vue+elementUI+WebSocket接收后台实时消息推送

    vue+elementUI+WebSocket接收后台实时消息推送 https://blog.csdn.net/weixin_40888956/article/details/105971432?ut ...