我有一个大约有100000个文件的目录,我想对所有以指定字符串开头的文件执行某些功能,这可能会匹配成千上万的文件.
我试过了
ls mystring*
Run Code Online (Sandbox Code Playgroud)
但是这会返回bash错误'Too many arguments'.我的下一个计划是使用
find ./mystring* -type f
Run Code Online (Sandbox Code Playgroud)
但这有同样的问题.
代码需要看起来像
for FILE in `find ./mystring* -type f`
do
#Some function on the file
done
Run Code Online (Sandbox Code Playgroud)
谢谢,Rik
Ser*_*sev 256
使用
find . -name 'mystring*'
Run Code Online (Sandbox Code Playgroud)
jac*_*ury 25
ls | grep "^a"
Run Code Online (Sandbox Code Playgroud)
将为您提供以字母a开头的所有文件,并且只对当前目录起作用,而find将默认深入查看子目录.
我不是说它更好 - 只是一个不同的角度.
如果您只想将搜索限制为文件,则应考虑-type f在搜索中使用
尝试也-iname用于不区分大小写的搜索
例子:
find /path -iname 'yourstring*' -type f
Run Code Online (Sandbox Code Playgroud)
您还可以对没有管道符号或 xargs 的结果执行一些操作
例子:
搜索文件并以 MB 为单位显示其大小
find /path -iname 'yourstring*' -type f -exec du -sm {} \;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
171021 次 |
| 最近记录: |