0

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

到目前为止,我必须ls -l | grep "pattern*得到一个目录列表,但我坚持这一点。

4

4 回答 4

2

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

find命令会做得更好:

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

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

于 2013-10-15T09:12:08.630 回答
2

您应该使用以下find命令:

find . -name 'pattern*' -printf '%s\t%p\n'
于 2013-10-15T09:13:06.983 回答
0

Bash 陷阱 #1:不要解析 ls

您可以使用findor shell 模式:

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

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

for i in pattern*/*; do
    if [ -f "$i" ]; then
         cat "$i"
    fi
 done
于 2013-10-15T09:12:58.843 回答
0

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

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

于 2013-10-15T09:14:15.440 回答