UNIX获取与模式匹配的所有目录中的文件的信息
我有一堆目录,所有目录都包含一个文件UNIX获取与模式匹配的所有目录中的文件的信息,unix,Unix,我有一堆目录,所有目录都包含一个文件/SubDir1/SubDir2/file,我希望在与特定模式匹配的目录下查看每个文件的内存。我该怎么做 到目前为止,我已经使用了ls-l | grep“模式*来获取目录列表,但我一直在做这个。通过“每个文件的内存”我想你指的是文件大小 find命令将做得更好: find . -name "pattern*" -exec du -b {} \; 这将打印树状图中名为file的每个文件的文件大小以及文件路径。通过“每个文件的内存”,我猜您指的是文件大小 fin
/SubDir1/SubDir2/file
,我希望在与特定模式匹配的目录下查看每个文件的内存。我该怎么做
到目前为止,我已经使用了ls-l | grep“模式*来获取目录列表,但我一直在做这个。通过“每个文件的内存”我想你指的是文件大小
find
命令将做得更好:
find . -name "pattern*" -exec du -b {} \;
这将打印树状图中名为file
的每个文件的文件大小以及文件路径。通过“每个文件的内存”,我猜您指的是文件大小
find
命令将做得更好:
find . -name "pattern*" -exec du -b {} \;
这将打印树木中名为file
的每个文件的文件大小以及文件路径。Bash pittfall#1:
您可以使用find
或shell模式:
for i in pattern*; do
cat "$i"
done
您的一个特殊问题是获取一组匹配目录下的所有文件的列表,您可以使用更复杂的模式:
for i in pattern*/*; do
if [ -f "$i" ]; then
cat "$i"
fi
done
Bash陷阱#1:
您可以使用find
或shell模式:
for i in pattern*; do
cat "$i"
done
您的一个特殊问题是获取一组匹配目录下的所有文件的列表,您可以使用更复杂的模式:
for i in pattern*/*; do
if [ -f "$i" ]; then
cat "$i"
fi
done
您应该使用
find
命令:
find . -name 'pattern*' -printf '%s\t%p\n'
您应该使用
find
命令:
find . -name 'pattern*' -printf '%s\t%p\n'
除了小天狼星所说的,您还可以使用
-R
选项ls
来获得递归列表
类似于
ls-lRh | grep“pattern”
的东西应该做你想做的事。除了小天狼星所说的,你还可以使用-R
选项ls
来获得递归列表
类似于
ls-lRh | grep”模式“
应该做你想做的。可能添加-type f
?可能添加-type f
?我不建议解析ls的输出。。。只是为了过滤供人食用。即使文件名中包含空格,上面这一行也可以工作,我认为这是迄今为止提出的最简单的解决方案,可以满足OP的要求。您最好使用ls-lRh“$pattern”
,或者添加-d
,如果这更接近您的意图。我不建议解析ls的输出。。。只是为了过滤供人食用。即使文件名中包含空格,上面这一行也可以工作,我认为这是迄今为止提出的最简单的解决方案,可以满足OP的要求。您最好使用ls-lRh“$pattern”
,或者添加-d
,如果这更接近您的意图。