148 我的目录中包含大约100000个文件,并且我想对所有以指定字符串开头的文件执行某些功能,该字符串可能匹配成千上万个文件。 我努力了 ls mystring* 但这会返回bash错误“参数过多”。我的下一个计划是使用 find ./mystring* -type f 但这有相同的问题。 代码需要看起来像 for FILE in `find ./mystring* -type f` do #Some function on the file done bash find — 里克·桑德森 source 代替的for循环,你应该管find到while。 — 暂停,直到另行通知。
277 用 find . -name 'mystring*' — 塞尔吉奥·图伦采夫 source 10 并执行某些功能“ find。-name'mystring *'-exec [command]”,例如删除“ find。-name'mystring *'-exec rm {} \;” — Eldar 2010年 2 其中{}是文件名:-)的占位符(这样您就可以构造自己的操作) — Sergio Tulentsev 2010年 1 这似乎返回所有包含字符串的结果吗?本 — 布莱恩ž 7 ...或find . -iname 'mystring*'不区分大小写的搜索。 — Frank Nocke OP指的是单个目录,因此请-maxdepth 1在“ 插入” 之前插入-name以将当前文件夹限制为当前文件夹 — jacanterbury
27 ls | grep "^abc" 将为您提供所有以substring 开头的文件(这是OP专门要求的)abc。 它仅在当前目录上find运行,而递归地进入子文件夹。 要find仅用于以字符串开头的文件,请尝试 找 。名称'abc'* — 贾坎特伯雷 source
4 如果您只想搜索文件,则应考虑-type f在搜索中使用 尝试也-iname用于不区分大小写的搜索 例: find /path -iname 'yourstring*' -type f 您还可以对结果执行一些操作,而无需使用管道符号或xargs 例: 搜索文件并以MB为单位显示它们的大小 find /path -iname 'yourstring*' -type f -exec du -sm {} \; — 梅森·凯普森 source
for
循环,你应该管find
到while
。