我对bash脚本还很陌生,现在我正尝试递归地浏览文件,以获取有关这些文件的一些信息(名称,大小等)
到目前为止我的尝试:
for i in *.txt; do
stat -c '%n' "$i" >> $2
wc -l -w >> $2
stat -c '%a %A %U' "$i" >> $2
done
$2 is the file, where i want to log this info...
谢谢!
编辑,我也应该发布问题,对不起
我收到此错误消息:
stat: cannot stat '*.txt': No such file or directory
但是文件应该在$ i变量中,对吗?
答案 0 :(得分:1)
如果没有与glob匹配的文件,则Bash默认情况下将仅返回glob本身。因此,您正在尝试处理一个名为“ * .txt”的文件(顺便说一句,它实际上是一个有效的文件名)。您可能想要的是shopt -s nullglob
将不匹配的glob扩展为零。
答案 1 :(得分:1)
用于递归文件操作的goto工具是find
-它非常强大,所以去喝杯茶,安顿下来并输入man find