递归浏览文件并接收文件信息

时间:2019-01-06 20:44:53

标签: linux bash

我对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变量中,对吗?

2 个答案:

答案 0 :(得分:1)

如果没有与glob匹配的文件,则Bash默认情况下将仅返回glob本身。因此,您正在尝试处理一个名为“ * .txt”的文件(顺便说一句,它实际上是一个有效的文件名)。您可能想要的是shopt -s nullglob将不匹配的glob扩展为零。

答案 1 :(得分:1)

用于递归文件操作的goto工具是find-它非常强大,所以去喝杯茶,安顿下来并输入man find