![是否可以列出以 X 开头或包含 X 的文件名?](https://linux22.com/image/1257128/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%88%97%E5%87%BA%E4%BB%A5%20X%20%E5%BC%80%E5%A4%B4%E6%88%96%E5%8C%85%E5%90%AB%20X%20%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%9F.png)
正如标题所问,是否可以列出以X开头或包含X的文件?
ls
用于列出文件。我可以使用哪些选项来列出以特定字母开头或包含特定字母的文件?
答案1
“以...开始”只是“包含”的一种特殊形式,因此你可以对两者使用相同的形式。
ls *X*
答案2
要完成“包含 X”部分,您需要执行以下操作:
ls | grep "X"
ls
- 列出当前目录中的所有文件
|
- 管道,将其之前的命令的所有输出作为其之后的命令的输入发送。
grep "X"
- 在给定的输入中搜索文本(这里,通过管道)。
ls -1 | grep "^X"
ls
- 列出当前目录中的文件,每行一个,这对于我们将使用的正则表达式至关重要grep
。
|
- 管道
grep "^X"
- 这基本上翻译为:“行的开头,然后是 X”,所以它将显示以“X”开头的文件。
希望这可以帮助!
答案3
为什么要使用ls *X*
?当您键入此命令时,bash
已经解释星号并展开它们,因此echo *X*
将执行完全相同的操作。
但它不会列出名称以点开头的文件。如果你真的想要文件,我最好的建议是:
find . -maxdepth 0 -type f -iname '*X*'
(-maxdepth 0
防止扫描子目录)。
答案4
这些都是很好的建议 - 如果您使用的是 LINUX!使用“ls”命令几乎与 MS-DOS 的 DIR 命令相同。但是,ls 命令仅存在于某些命令行解释器(如 C-shell)中,而不存在于 MS-DOS 中,当然也不存在于 MS-Windows 中。
因此,如果您询问的是 Windows 解决方案,我可能会认为您还没有完全探索过 Windows 资源管理器(也不要与“Internet Explorer”混淆)。例如,要在 Windows 资源管理器中按字母顺序查看文件,只需打开它(例如,单击“我的电脑”),确保您可以按详细信息查看,导航到要排序的文件夹,然后单击名为“名称”的列以查看所有以 A 开头的文件,然后是以 B 开头的文件,依此类推。再次单击它,您可以看到所有文件以相反的顺序列出,首先看到所有以 Z 开头的文件 - 第三次单击它,它会回到首先列出 A 的顺序。但它并不止于此。然后,您可以单击日期列(假设您没有从默认菜单设置中取消选择并隐藏它或做其他事情)以显示按字母顺序排列的列表,其中日期最近的文件列在最前面。您甚至可以添加更多列(通过右键单击),您可以在其中添加或删除显示选项,您甚至可以指定一个标题,该标题可以根据搜索公式或甚至使用复选框显示文件 - 这只是开始!
再说一次,如果你是老派,你可以直接在 DOS 框中使用 DOS 命令行。例如,打开一个 DOS 框(运行“cmd.exe”),转到你的目录/文件夹并输入“dir [star]x[star]”(不带引号)以显示名称中带有 x 的所有文件。当然,你也可以将输出重定向到另一个文件。例如,'dir [star]x[star]>filename.txt',它将创建一个名为“filename.txt”的文本文件,并包含名称中带有 x 的所有文件的列表。当然,输入“dir x[star]”将仅显示以字母 x 开头的文件。(注意到命令中 x 的位置和星号 [star] 通配符的细微差别了吗?)。如果你真的想疯狂一下,你甚至可以编写一个批处理文件!只是不要忘记暂停行或重定向输出,否则这将是毫无意义的。(有人记得 DOS 批处理“编程”吗?哈哈)
希望能帮助到你。
PS:我不得不用 [star] 来代替星号,因为这个博客不会打印它们 - 抱歉。
PSS 我知道。我知道!我可能可以添加星号,但我已经发帖了。所以请不要纠结于此。下次我会尽量记住(我是如何发帖的)。