Questions tagged «wildcards»

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


4
Bash star *通配符是否总是产生(升序)排序列表?
我有一个目录,其中填充了一些文件名logXX,其中XX是一个两个字符,零填充的大写十六进制数字,例如: log00 log01 log02 ... log0A log0B log0C ... log4E log4F log50 ... 通常,总共少于20个或30个文件。我的特定系统上的日期和时间不可靠(嵌入式系统没有可靠的NTP或GPS时间源)。但是,文件名将可靠地增加,如上所示。 我希望grep浏览所有文件中某个类型的最新日志条目,我希望将cat这些文件放在一起,例如... cat /tmp/logs/log* | grep 'WARNING 07 -' | tail -n1 然而,它发生,我认为不同版本bash或sh或zsh等可能有关于如何不同的想法*展开。 该man bash页面没有说明的扩展是否*一定是匹配文件名的绝对升序字母列表。每当我在所有可用的系统上尝试过该功能时,它的数量似乎都会不断增加,但是它是行为定义的还是特定于实现的? 换句话说,我可以绝对依赖cat /tmp/logs/log*于按字母顺序将所有日志文件连接在一起吗?
53 bash  shell  wildcards 

1
“ rm。*”是否会删除父目录?
.*bash 将表达式扩展为包括当前目录和父目录: $ ls -la total 2600 drwxrwxrwx 2 terdon terdon 2162688 Sep 10 16:22 . drwxr-xr-x 142 terdon terdon 491520 Sep 10 15:34 .. -rw-r--r-- 1 terdon terdon 0 Sep 10 16:22 foo $ echo .* . .. 如果我rm -rf .*使用GNU bash在Debian上运行,version 4.2.36(1)-release并且rm从中rm (GNU coreutils) 8.13获得以下消息: $ rm -rf …
53 shell  wildcards  rm  posix 

4
从全局匹配中排除一种模式
我有几个具有相同基本文件名的文件。我只想删除一个 foo.org #keep foo.tex #delete foo.fls #delete foo.bib #delete etc 如果我不需要保留一个,那么我知道可以使用rm foo.*。 TLDP证明^可以取消匹配。通过反复试验,我发现 rm foo.*[^org] 可以满足我的需求,但我不太了解语法。 另外,虽然我的用例不受限制,但我认为此模式也忽略了foo.o和foo.or。这一模式如何工作的,以及什么将一个水珠忽略只有 foo.org样子?
53 bash  wildcards 

3
在外壳通配符中使用OR模式
我的目录的内容是 $ ls -lrt total 0 -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 night.txt -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 noon.txt -rw-r--r-- 1 user1 admin 38 Oct 8 12:31 day.txt 我想列出文件名中包含单词的文件的详细信息。 范例: $ ls -lrt *day|night* ls: *day: No such file or directory bash: night.txt: command not …
52 bash  shell  zsh  ls  wildcards 

5
如何从目录中删除所有子目录?
这个问题是我在此处发布的第一个问题的第二阶段 我有一个目录,其中包含一堆子目录,.zip文件以及未包含在子目录中的其他随机文件。 我想使用命令行脚本从父目录中删除所有子目录,但保留所有不属于任何子目录的zip文件和松散文件。所有子目录都有内容,因此我相信我需要使用-f命令强制将其删除。 因此,基本上,在父目录(或当前目录)中查找的命令会删除其中的所有文件夹,但会保留不是文件夹或包含在文件夹中的所有其他内容和文件。 我知道从命令行删除项目需要特别注意,但是我已经采取了所有必要的预防措施进行远程备份。

5
如何使用通配符递归删除目录?
我正在WD My Book World Edition上通过SSH进行工作。基本上,我想从特定的目录级别开始,然后递归地删除所有匹配的子目录.Apple*。我将如何处理? 我试过了 rm -rf .Apple* 和 rm -fR .Apple* 都没有删除子目录中与该名称匹配的目录。




1
查找无扩展名的文件
假设我有: foo.txt bar baz.ooo 如果我使用的ls -1 !(*.*)话,我只会得到bar输出。太好了,现在我希望获得与find相同的结果-有些find -regex可以完成任务。 注意: find -name !(*.*)不是答案,因为!(*.*)它仍然是Bash的问题,我无法使用。
43 bash  shell  find  wildcards 

5
如何删除具有特殊目标的所有符号链接?
使用命令: ls -la * 我可以列出所有符号链接。 如何删除链接到特殊文件夹的所有符号链接? 例如: 在我的目录中,usr/local/bin我有以下条目: lrwxrwxrwx 1 root root 50 Apr 22 14:52 allneeded -> /usr/local/texlive/2011/bin/x86_64-linux/allneeded lrwxrwxrwx 1 root root 47 Apr 22 14:52 amstex -> /usr/local/texlive/2011/bin/x86_64-linux/amstex lrwxrwxrwx 1 root root 24 Apr 23 19:09 arara -> /home/marco/.arara/arara 现在,我想删除路径中的所有链接 /usr/local/texlive/
43 wildcards  symlink  rm 

7
为什么[AZ]匹配bash中的小写字母?
在我所知道的所有shell中,都rm [A-Z]*删除了以大写字母开头的所有文件,但是使用bash删除了以字母开头的所有文件。 由于在使用bash-3和bash-4的Linux和Solaris上存在此问题,因此它不能是由libc中的错误模式匹配器或配置错误的语言环境定义引起的错误。 是这种奇怪而危险的行为,还是仅仅是多年来未修复的错误?
42 bash  shell  wildcards  locale 

11
仅显示ls别名中的隐藏文件(点文件)
我正在使用命令 ls -a | grep '^\.' 仅显示隐藏文件。我加了线 alias hidden='ls -a | grep '^\.'' # show only hidden files 到.bash_aliases文件 但这不起作用。这可能是'性格问题。 您能帮我写正确的别名吗?
42 ls  alias  wildcards 

7
如何通过通配符复制多个文件?
我有一个文件夹,其中包含许多文件ABC。*(大约有100个此类文件)。我想将它们全部复制到名称以DEF开头的新文件。* 所以,我要 ABC.Page1 ABC.Page2 ABC.Topic12 ...etc 复制到 DEF.Page1 DEF.Page2 DEF.Topic12 ...etc 使用批处理命令(在BASH或类似格式中)执行此操作的最简单方法是什么?我正在考虑涉及sed或awk或xargs的内容,但是我很难弄清语法。我可以编写Python脚本,但我认为可能存在一种不太复杂的命令行解决方案。

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.