Questions tagged «wildcards»

通配符表示通过包含通配符的名称模式匹配文件。

5
移动每个非目录文件
我有一个要清除的目录,其中包含文件和子目录。我想做的很简单:将所有文件移到另一个目录,但将所有子目录保留不变。 我在想类似的东西: mv [*_but_no_dirs] ./other_directory 似乎应该有一种使用通配符*和正则表达式的简单方法... 有人有想法吗?
14 bash  directory  wildcards  mv 

5
我只能从bash球中选择一个结果吗?
我正在尝试编写一个脚本来自动执行一些输出报告。日志文件(目前正在将来被标准化)存储在这种路径结构中: /<root_path>/<process_one_path>/logs/<time_date_stamp>/<specific_log_file> /<root_path>/<process_two_path>/logs/<different_time_date_stamp>/<specific_log_file> 除时间标记外,路径的每个部分都是已知的,时间标记始终是文件夹中的最新标记。 如果我尝试使用通配符代替时间戳记,则会得到多个结果,例如: > ls /<root_path>/<process_two_path>/logs/* [tab] 20130102-175103 20130118-090859 20130305-213506 我只希望它返回最新版本,Bash可以吗? NB(我没有zsh,而且听起来很可爱,我怀疑我们是否会成功使用它)
14 bash  wildcards  glob 

4
如何使bash glob成为字符串变量?
系统信息 作业系统:OS X bash:GNU bash,版本3.2.57(1)-发行版(x86_64-apple-darwin16) 背景 我希望时间机器从我的所有git / nodejs项目中排除一组目录和文件。我的项目目录在其中~/code/private/,~/code/public/因此我尝试使用bash循环来执行tmutil。 问题 精简版 如果我有一个计算得出的字符串变量k,那么如何在for循环之前或之内使其全局: i='~/code/public/*' j='*.launch' k=$i/$j # $k='~/code/public/*/*.launch' for i in $k # I need $k to glob here do echo $i done 在下面的长版中,您会看到k=$i/$j。因此,我无法在for循环中对字符串进行硬编码。 长版 #!/bin/bash exclude=' *.launch .classpath .sass-cache Thumbs.db bower_components build connect.lock coverage dist e2e/*.js e2e/*.map libpeerconnection.log node_modules npm-debug.log …

2
将特定模式的文件移动到另一个目录
在目录中,/home/in我有如下文件: crust.MC12345.txt crust.etcMC12345.txt crust.MC23456.txt crust.etcMC23456.txt crust.etctcMC23456.txt 我只需要移动crust.etcMC12345.txt和crust.etcMC23456.txt到其他目录,/home/out何为我在mv命令使用上述场景模式?
14 shell  wildcards  mv 

1
如何在sudo中使用shell通配符?
我正在尝试取出folder1的所有内容,并将其放入folder1所在的images_temp文件夹中: jeatonhomes@jeatonhomes.com [~/images_temp]# sudo mv folder1/* . mv: cannot stat `folder1/*': No such file or directory 但是我在上面遇到了这个错误,我试图在这里查找答案,但是有些答案我认为不适用于我的情况。请帮忙。 jeatonhomes@jeatonhomes.com [~]# pwd && ls -l /home/jeatonhomes total 108 drwx--x--x 18 jeatonhomes jeatonhomes 4096 Apr 3 13:25 ./ drwx--x--x 106 root root 4096 Mar 30 16:19 ../ lrwxrwxrwx 1 jeatonhomes jeatonhomes 37 Dec …

4
如何查找除指定文件外的所有文件
该ls可以给像结果 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo 但实际上我希望只是看看CentOS-Base.repo,CentOS-Debuginfo.repo而CentOS-Vault.repo却没有CentOS-Media.repo。所以我运行这个命令 ls [^\(Media\)] 但是我得到一个错误信息,该怎么办?
13 wildcards 


5
如何以编程方式判断文件名是否与Shell Glob模式匹配?
我想告诉您一个字符串$string是否可以通过glob模式进行匹配$pattern。 $string可能是也可能不是现有文件的名称。我怎样才能做到这一点? 假设我的输入字符串采用以下格式: string="/foo/bar" pattern1="/foo/*" pattern2="/foo/{bar,baz}" 我想找到一个bash成语,决定是否$string将被匹配$pattern1,$pattern2或任何其它任意的glob模式。到目前为止,这是我尝试过的: [[ "$string" = $pattern ]] 除了$pattern被解释为字符串模式而不是全局模式之外,这几乎可以工作。 [ "$string" = $pattern ] 这种方法的问题$pattern是先进行扩展,然后在之间进行字符串比较,然后$string对进行扩展$pattern。 [[ "$(find $pattern -print0 -maxdepth 0 2>/dev/null)" =~ "$string" ]] 该$string文件有效,但前提是包含一个存在的文件。 [[ $string =~ $pattern ]] 这不起作用,因为=~运算符导致$pattern将其解释为扩展的正则表达式,而不是全局或通配符模式。
13 bash  wildcards 

3
为什么[az]星号匹配数字?
我在当前路径下有3个目录。 $ls a_0db_data a_clean_0db_data a_clean_data $ls a_*_data a_0db_data: a_clean_0db_data: a_clean_data: $ls a_[a-z]*_data a_clean_0db_data: a_clean_data: 我希望最后一个ls命令只能匹配a_clean_data。为什么它也与包含的匹配0? bash --version GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)

2
Shell文件名模式,可扩展为点文件,但不扩展为`..`?
最近,我因外壳模式以意外方式扩展而引起了一些意外。我想更改/root目录中一堆点文件的所有者,所以我做了 chown -R root .* 自然地,.*扩展到..那里确实是一场灾难。 我知道bash可以通过调整一些shell选项来更改此行为,但是在默认设置下,是否存在任何模式可以扩展到目录中的每个点文件,但不能扩展为.and ..?

5
带有glob模式的cp隐藏文件
情况: $ mkdir foo && touch foo/.test $ cp foo/* . zsh: no matches found: foo/* (or bash : cp: cannot stat ‘foo/*’: No such file or directory) 我的目录充满了隐藏的文件夹和文件。发生了什么,解决方案是什么?
13 zsh  wildcards  cp  dot-files 



1
bash扩展的glob-匹配不带前缀的文件
我正在尝试为fail2ban监狱匹配文件名-所以我只需要使用文件名遍历-而不是正则表达式或bash脚本。 我的/var/log/apache2目录包含以下文件: example.com.error.log db.example.com.error.log app1.example.com.error.log app2.example.com.error.log 我正在尝试创建一个glob来匹配以结尾的所有文件,.error.log 除了 db.example.error.log -这可能吗? 我已经尝试过了,!(db)*.error.log但这仍然匹配db.example.com.error.log。我猜的!()是没有字符匹配,从而允许*从文件名的开头进行匹配。 注意:appX添加新的日志文件时,我不需要扩展glob ,因此无法使用@()当前已知的非db文件名列表。 (背景:我想创建一个过滤器,禁止任何人在db.example.com 以外的任何域上请求任何phpMyAdmin URL )

2
以`ls`匹配模式排除一个目录
我正在尝试里面ls有.png文件的目录(不需要递归,尽管它会额外有用),第一个。排除一个目录即 ls */*.png 工作良好。 ls (^one)*/*.png 不返回任何标准输出。我该如何实现? 我是盲人,并将其传送到espeak,所以现在我只能听到stdout。
13 shell  ls  wildcards 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.