linux包含所有目录

linux包含所有目录,linux,ubuntu,utf-8,terminal,Linux,Ubuntu,Utf 8,Terminal,我如何在ubuntu终端中键入一个文件路径,以包含所有子目录中的所有文件 如果我有一个名为“books”的主目录,但有大量子目录,其中包含各种不同的文件名,那么我如何键入一个路径来包含所有子目录中的所有文件 /书籍/ ./books/* 例如,假设我在“books”的父目录中: ls ./books/* 编辑: 实际上,要递归列出所有树,您应该使用: ls -R ./books/* 不清楚你到底想要什么。。。如果你直接要求解决问题,而不是为了你遇到的另一个问题,你可能会得到一个更好的解决方

我如何在ubuntu终端中键入一个文件路径,以包含所有子目录中的所有文件

如果我有一个名为“books”的主目录,但有大量子目录,其中包含各种不同的文件名,那么我如何键入一个路径来包含所有子目录中的所有文件

/书籍/

./books/*
例如,假设我在“books”的父目录中:

ls ./books/*
编辑:

实际上,要递归列出所有树,您应该使用:

ls -R ./books/*

不清楚你到底想要什么。。。如果你直接要求解决问题,而不是为了你遇到的另一个问题,你可能会得到一个更好的解决方案

你是说像下面这样的事情吗

file */*
其中第一个
*
为所有子目录展开,第二个
*
为所有包含的文件展开

我任意选择了
文件
命令。您可以选择要在shell展开的文件上运行的任何命令。 还请注意,目录也将包括在内(如果未按名称排除,例如
*.png
*.txt
)。 通配符
*
并不完全是包含所有子目录中所有文件的文件路径,但它将扩展到与通配符表达式匹配的所有文件(或目录),例如
file1 file2 file3 file4
。另见

请注意,相关问题可能有简单的解决方案。要复制所有子目录中的所有文件(
cp-a
,例如,请参见
mancp

我也非常喜欢
find
。结合
grep
可以很容易地生成更灵活的搜索模式。要提供随机示例,请执行以下操作:

du `find . | grep some_pattern_to_occur | grep -v some_pattern_to_not_occur`

在books top目录中,您可以使用以下命令:

find-f类

然后,如果您想通过cat运行每个文件,可以使用xargs命令:

find-f型| xargs cat

有关详细信息,请使用以下命令:

man-find


man xargs

不清楚您到底想做什么。在什么环境下?以脚本语言或命令行作为shell命令的输入?更多信息会很有用。通常,如果工具支持此功能,则会向工具传递一个标志以递归子目录。这是遍历子目录层次结构的正确方法。一些shell为此提供了通配符语法
***
,但Bash v2不在其中。任何受支持的Ubuntu版本都使用Bash版本3或更高版本作为终端(据我所知)。我以前从未注意到此命令,因此感谢分享。当我尝试它时,它会报告目录和文件,并提供有关其文件/目录类型的更多信息,例如
api:directory
api/pom.xml:xml document text
,因此我认为要使用它来迭代文件,您必须运行它来删除文件名之后的所有内容,然后运行它的命令必须能够处理目录。我快速浏览了
man文件
,没有找到避免额外信息的方法。哦,我明白你的意思了。感谢您的跟进:)