UNIX在与模式匹配的所有目录中获取有关文件的信息

时间:2013-10-15 09:08:23

标签: unix

我有一堆目录都包含文件/SubDir1/SubDir2/File,我希望在与某个模式匹配的目录下查看每个文件的内存。我该怎么做?

到目前为止,我有ls -l | grep "pattern*来获取目录列表,但我坚持这一点。

4 个答案:

答案 0 :(得分:2)

通过“每个文件的内存”,我猜你的意思是文件大小。

find命令可以做得更好:

find . -name "pattern*" -exec du -b {} \;

这将打印您的树状中名为File的每个文件的文件大小以及文件路径。

答案 1 :(得分:2)

您应该使用find命令:

find . -name 'pattern*' -printf '%s\t%p\n'

答案 2 :(得分:0)

Bash陷阱#1:Don't parse ls

您可以使用find或shell模式:

for i in pattern*; do
    cat "$i"
done

您的一个特殊问题是获取一组匹配目录下的所有文件的列表,您可以使用更复杂的模式来实现:

for i in pattern*/*; do
    if [ -f "$i" ]; then
         cat "$i"
    fi
 done

答案 3 :(得分:0)

除了SirDarius所说的内容之外,您还可以使用-R选项ls来获取递归列表。

ls -lRh | grep "pattern"之类的东西应该做你想要的。

相关问题