我将如何在ubuntu终端中键入文件路径以包含所有子目录中的所有文件?linux包含所有目录
如果我有一个名为“books”的主目录,但有大量的子目录包含各种不同名称的文件,我该如何键入一个路径来包含所有子目录中的所有文件?
/books/???
我将如何在ubuntu终端中键入文件路径以包含所有子目录中的所有文件?linux包含所有目录
如果我有一个名为“books”的主目录,但有大量的子目录包含各种不同名称的文件,我该如何键入一个路径来包含所有子目录中的所有文件?
/books/???
目前还不清楚你实际上想要什么......可能是y如果你直接问这个问题,你会得到一个更好的解决方案,而不是你试图规避原始问题的另一个问题。
你的意思是像下面这样的东西吗?
file */*
,其中第一*
扩展了所有的子目录和所有的第二*
包含文件?
我已经任意选择了file
指令。你可以选择任何你想运行的命令来扩展你的shell。 还要注意,还将包括目录(如果不按名称排除,例如*.png
或*.txt
)。 通配符*
不完全是文件路径包含所有子目录中的所有文件,但它扩展为与通配符表达式匹配的所有文件(或目录)作为列表,例如, file1 file2 file3 file4
。另请参阅this tutorial on shell expansion。
请注意,可能有解决相关问题的简单方法。像复制所有子目录中的所有文件(例如,cp -a
,请参阅man cp
)。我很喜欢find
。与grep
结合生成更灵活的搜索模式相当容易。为了提供一个随便举个例子:
du `find . | grep some_pattern_to_occur | grep -v some_pattern_to_not_occur`
我从来没有注意过这个命令,所以感谢分享它。当我尝试它时,它报告目录以及文件,并且它提供了关于它的文件/目录的类型的更多信息,例如 'api:目录' 'api/pom.xml:XML文档文本' 所以我想用它来遍历文件,你必须通过一些东西来运行它,以便删除文件名后面的所有内容,然后你运行它的命令必须能够处理目录。我通过'man file'快速浏览了一下,并没有看到避免额外信息的方法。 –
@BenRose:我随便挑选了'file'命令做一个小例子... – moooeeeep
哦,我明白你的意思了。感谢后续:) –
目前尚不清楚你想要做什么。 –
在什么情况下?在脚本语言或命令行中作为shell命令的输入?一些更多的信息将是有用的.. –
通常,如果一个工具支持这个,将会有一个标志可以传递给该工具来递归子目录。 – Skolor