我有一堆目录,它们都包含一个文件/SubDir1/SubDir2/File
,我想查看匹配某个模式的目录下每个文件的内存。我该怎么做呢?
到目前为止,我必须ls -l | grep "pattern*
得到一个目录列表,但我坚持这一点。
我有一堆目录,它们都包含一个文件/SubDir1/SubDir2/File
,我想查看匹配某个模式的目录下每个文件的内存。我该怎么做呢?
到目前为止,我必须ls -l | grep "pattern*
得到一个目录列表,但我坚持这一点。
“每个文件的内存”我猜你的意思是文件大小。
该find
命令会做得更好:
find . -name "pattern*" -exec du -b {} \;
这将打印File
树状结构中命名的每个文件的文件大小以及文件路径。
您应该使用以下find
命令:
find . -name 'pattern*' -printf '%s\t%p\n'
Bash 陷阱 #1:不要解析 ls
您可以使用find
or shell 模式:
for i in pattern*; do
cat "$i"
done
您的一个特殊问题是获取一组匹配目录下所有文件的列表,您可以使用更复杂的模式来做到这一点:
for i in pattern*/*; do
if [ -f "$i" ]; then
cat "$i"
fi
done
除了 SirDarius 所说的,您还可以使用-R
选项ls
来获取递归列表。
类似的东西ls -lRh | grep "pattern"
应该做你想做的事。