Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从终端运行文件系统迭代器_Bash_Filesystems - Fatal编程技术网

Bash 从终端运行文件系统迭代器

Bash 从终端运行文件系统迭代器,bash,filesystems,Bash,Filesystems,在对文件执行函数时,是否有一个简单的bash可执行程序(存储库中的simple!!!可以按指定顺序(中缀、前缀、后缀等)迭代文件树 具体地说,我想在一个或多个目录的根目录上列出一个大的文件名列表。我可以在java上轻松地完成这项工作(事实上我已经有了这个函数),但出于某种原因,我想在bash中完成这项工作)。 我对代码不感兴趣。我想用一个程序来帮我解决这个问题。你可以用 find . -type f -exec cat {} \; …要查找所有文件,请键入当前目录中的f,并显示每个文件的内容c

在对文件执行函数时,是否有一个简单的bash可执行程序(存储库中的simple!!!可以按指定顺序(中缀、前缀、后缀等)迭代文件树

具体地说,我想在一个或多个目录的根目录上列出一个大的文件名列表。我可以在java上轻松地完成这项工作(事实上我已经有了这个函数),但出于某种原因,我想在bash中完成这项工作)。 我对代码不感兴趣。我想用一个程序来帮我解决这个问题。

你可以用

find . -type f -exec cat {} \;
…要查找所有文件,请键入当前目录中的f,并显示每个文件的内容
cat{}
或者,如果您想要类似树的输出,您可以使用
tree

一般来说,最好使用-exec命令的“+”后缀,而不是“;”,因为它使用大参数列表运行命令的次数要少得多,而不是使用单个参数对每个文件运行一次。当您处理100000或1000000个文件时,这会对执行速度产生很大影响。(一些旧的、非GNU的find命令不支持“+”@Adrian Pronk:哇,谢谢,我不知道:)我还需要转义吗?不,
+
不需要转义。我更喜欢将find过程与执行分开,所以我通常使用find+xargs。@Adrian。是的,这些都是合理的担忧,但使用声音别名很容易克服,即:“xargs-r-d”\n”(我称之为xargsn)。就是这样,1)默认情况下不运行空命令,2)按行而不是按字馈送(已授予,\n在文件名中也有效,但实际上并未使用)。