linux命令后跟大括号 linux中括号

linux命令 $()代表什么意思小括号里面是linux命令
比如
cat $(pwd)aaa
等价于
cat `pwd`aaa
其实是要执行里面linux命令后跟大括号的pwd然后用输出代替$()内容linux命令后跟大括号的 。
而大括号里面则是数组变量
举个例子
【linux命令后跟大括号 linux中括号】$A = (hello linux shell)
$echo ${A[0]}
则会输出hello
linux命令 $- 是什么意思$-记录着当前设置的shell选项linux命令后跟大括号,himBH是默认值 , 5个字母分别有各自含义 。解释如下linux命令后跟大括号:
h:hashall , 打开这个选项后,Shell 会将命令所在的路径记录下来,避免每次都要查询 。举例:当h选项开启时,如果将某个自定义命令从/usr/bin/目录下移动到/usr/local/bin/,再运行,会提示无此命令 。而当通过seth将h选项关闭后,上述情况就不会出现 。
i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的 shell 。所谓的交互式shell,就是输入命令后,shell解释执行,然后返回一个结果 。在脚本中,i选项是关闭的 。
m:monitor,打开监控模式,就可以通过Job control来控制进程的停止、继续,后台或者前台执行等 。
B:braceexpand,大括号扩展 。举例如下:
lenovo@lenovo-DK ~
$ ls
A_File
lenovo@lenovo-DK ~
$ cp A_File{,.back_up}
lenovo@lenovo-DK ~
$ ls
A_FileA_File.back_up
如果关闭B选项,那么shell就不会将大括号扩展 。
5.H:history,Shell 会把我们执行的命令记录下来,可以通过 history 命令查看,每一行是序号执行的命令,在 shell 退出时,会将这些信息保存到~/.bash_history 文件中 。如果H选项打开,就可以展开历史列表中的命令 , 可以通过!感叹号来完成,例如"!!"返回上最近的一个历史命令,"!n"返回第 n 个历史命令,等等 。
【参考资料如下 , 但愿能帮到你^_^】
linux 帮助 里面 [] {} 中括号 大括号 什么意思,语法是怎么样的啊中括号里的是可选的 。而大括号里的是必选的 , 中间是必选一个 。如[a,b]可以选择a,可以选b,也可以不选 。但如果是{a|b},那a和b就必须要选一个,而且只能选一个 。
Linux 命令行大括号的具体意思就是说在 /home/kevin/test 下查找名为cc.txtlinux命令后跟大括号的文件 linux命令后跟大括号,然后对查找到linux命令后跟大括号的文件执行rm -f 命令linux命令后跟大括号,强制删除 。
{} \;是 固定格式
Linux find 命令详解 find 命令linux命令后跟大括号的基本结构如下:
find [paths] [expression] [actions]
find 命令接受一个或多个 路径 ( paths )作为搜索范围linux命令后跟大括号,并在该路径下 递归 地搜索 。即检索完指定的目录后,还会对该目录下的子目录进行检索,以及子目录下的子目录 。。。直到到达目录树底部 。
默认情况下(不带任何搜索条件) , find 命令会返回指定目录下的 所有文件,所以常常需要通过特定的expression对结果进行 筛选。
find 命令默认的action是将所有检索结果打印至标准输出 。可以通过自定义action,让 find 命令对搜索到的结果执行特定的操作 。
这里先不做详细解释,简单地测试下 find 命令:
find 命令中的-name选项可以根据文件名称进行检索( 区分大小写 ) 。如需要忽略文件名中的大小写 , 可以使用-iname选项 。
-name和-iname两个选项都支持wildcards。如:
find /usr -name '*.txt'查找 /usr 目录下所有文件名以.txt结尾的文件
find /usr -name '????'查找 /usr 目录下所有文件名刚好为 4 个字符的文件
有些时候,linux命令后跟大括号你需要在搜索时匹配某个文件或目录的 完整路径,而不仅仅是匹配文件名 。可以使用-path或-ipath选项 。
如查找 /usr 下所有文件名以.txt结尾的文件或目录,且该文件的父目录必须是src。可以使用以下命令:
find /usr -path '*/src/*.txt'
如果只想搜索得到文件 或 目录,即不想它们同时出现在结果中 。可以使用-type选项指定文件类型 。
-type选项最常用的参数如下:
find /usr -type d -name 'python*'检索 /usr 下所有文件名以python开头的 目录
find 命令支持-empty选项用来检索 为空 的文件或目录 。空文件即文件里没有任何内容,空目录即目录中没有任何文件或子目录 。
find ~ -type d -empty检索用户主目录下所有的空目录
find 命令也允许用户对当前的匹配条件进行 “反义” (类似于 逻辑非 操作) 。
如需要检索 /usr 下所有文件名 不 以.txt为后缀的文件 。可以使用以下命令:
find /usr -type f ! -name '*.txt'
也可以“翻转”任何其他的筛选条件 , 如:
find /usr -type f ! -empty检索 /usr 下所有内容不为空的文件
为linux命令后跟大括号了检索归属于特定用户的文件或目录 , 可以使用-user选项 。
find / -type f -user starky检索根目录下所有属主为 starky 的文件
类似于-user 选项,-group选项则可以根据文件或目录的 属组 进行检索 。
有些时候,需要根据文件创建或修改的时间进行检索 。
Linux 系统中,与文件相关联的时间参数有以下三种:
与此对应的是 find 命令中的-mtime,-atime和-ctime三个选项 。
这三个选项的使用遵循以下示例中的规则:
find /usr -type f -mtime 2检索 /usr 下两天前被修改过的文件
如果觉得-mtime等选项以 天 为单位时间有点长,还可以使用-mmin , -amin , -cmin三个选项:
find /usr -type f -mtime50 -mtime -100检索 /usr 下 50 到 100 天之前修改过的文件
find /usr -type f -mtime 2 -amin 5检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件
-size选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……) 。
表示文件大小的单位由以下字符组成:
另外,还可以使用或-符号表示 大于 或 小于 当前条件 。
find / -size1G检索文件大小高于 1 GB 的文件
find 命令可以使用-perm选项以文件权限为依据进行搜索 。
如需要检索 /usr 目录下权限为rwxr-xr-x的文件,可以使用以下命令:
find /usr -perm u=rwx,g=rx,o=rx
搜索 /usr 目录下所有权限为r-xr-xr-x (即系统中的所有用户都只有读写权限)的文件和目录,可以使用以下命令:
find /usr -perm a=rx
很多时候,linux命令后跟大括号我们只想匹配文件权限的一个 子集。比如,检索可以直接被任何用户执行的文件,即只关心文件的执行权限,而不用管其读写权限是什么 。
上述的需求可以通过以下命令实现: find / -type f -perm /a=x
其中a=x前面的/符号即用来表示只匹配权限的某个子集(执行权限) , 而不用关心其他权限的具体设置 。
-perm选项也支持数字形式的文件权限标记 。
find /usr -perm 644搜索 /usr 目录下权限为644 (即rwxr-xr-x )的文件
find 命令默认是以 递归 的方式检索项目的,这有时候会导致得到的结果数量非常巨大 。可以使用-maxdepth限制 find 命令递归的层数 。
find / -maxdepth 3搜索时向下递归的层数最大为 3
在之前的例子中有出现多个搜索条件的 组合 以及对某个搜索条件的 反转。
实际上 find 命令支持“and”和“or”两种逻辑运算,对应的命令选项分别是-a和-o。通过这两个选项可以对搜索条件进行更复杂的组合 。
此外还可以使用 小括号 对搜索条件进行 分组。注意find命令中的小括号常需要用 单引号 包裹起来 。因小括号在 Shell 中有特殊的含义 。
如检索 /usr 下文件名以python开头且类型为目录的文件
find /usr -type d -name 'python*'
该命令等同于:
find /usr -type d -a -name 'python*'
更复杂的组合形式如:
find / '(' -mmin -5 -o -mtime50 ')' -a -type f
-delete选项可以用来删除搜索到的文件和目录 。
如删除 home 目录下所有的空目录:
find ~ -type d -empty -delete
-exec选项可以对搜索到的结果执行特定的命令 。
如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是/media/MyDrive ),可使用下面的命令:
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ';'
其中的 大括号 ( {} )作为检索到的文件的占位符,而分号(; )作为命令结束的标志 。因为分号是 Shell 中有特殊含义的符号 , 所以需要使用单引号括起来 。
每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的{},然后执行-exec后面的命令一次 。
另一个很重要的用法是 , 在多个文件中检索某个指定的字符串 。
如在用户主目录下的所有文件中检索字符串hello,可以使用如下命令:
find ~ -type f -exec grep -l hello {} ';'
创建 Gzip 格式的压缩文件的命令为: tar -czvf filename.tar.gz list of files
现在假设需要将用户主目录下所有的 MP3 文件添加到压缩包music.tar.gz中,直观的感觉是,其命令应为如下形式:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ';'
实际情况是,这样得到的music.tar.gz其实只包含一个 MP3 文件 。
原因是 find 命令 每次 发现一个音频文件,都会再执行一次-exec选项后面的压缩命令 。导致先前生成的压缩包被覆盖 。
可以先让 find 命令检索出所有符合条件的音频文件 , 再将得到的 文件列表 传递给后面的压缩命令 。完整的命令如下:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {}
如果想浏览搜索到的文件(目录)的详细信息(如权限和大小等),可以直接使用-ls选项 。
find / -type file -size1G -ls浏览所有 1G 以上大小的文件的详细信息
A Guide to the Linux “Find” Command
find 命令手册 : man find
LINUX SHELL中的特殊符号$大括号,##,%%等作用有些小伙伴经常在SHELL脚本中看到某些特殊的取值或者赋值方式linux命令后跟大括号,比如${}连起来用的含义
那么我们直接上答案: 替换/截取
假设我们定义一个变量:
我们获取fileName的值使用 :
替换其中的tempDir1为tempDir3linux命令后跟大括号 , 我们可以使用命令:
结果
替换全部的Dir为Path
结果
#, ##, %,%%的作用
#符号A,##符号A,%符号A,%%符号A
为什么#是取左边的,%是取右边的呢?
看我们键盘的布局:
数字键 3 4 5 分别对应 # $ % ,
#和% 正好位于取值符号$的左右两边,你知道了么 。。。。。。
常见用法:
加入我们调用一个脚本,入参有多个,
关于linux命令后跟大括号和linux中括号的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读