要获得目录下(包括子目录)所有文件名,路径和文件大小用shell应该是最简便的
shell脚本: lsdir.sh
#!/bin/bash
function ergodic(){
for file in `ls $1`
do
if [ -d $1"/"$file ]
then
ergodic $1"/"$file
else
local path=$1"/"$file
local name=$file
local size=`du --max-depth=1 $path|awk '{print $1}'`
echo $name $size $path
fi
done
}
IFS=$'\n' #这个必须要,否则会在文件名中有空格时出错
INIT_PATH=".";
ergodic $INIT_PATH
shell脚本: lsdir.sh
#!/bin/bash
function ergodic(){
for file in `ls $1`
do
if [ -d $1"/"$file ]
then
ergodic $1"/"$file
else
local path=$1"/"$file
local name=$file
local size=`du --max-depth=1 $path|awk '{print $1}'`
echo $name $size $path
fi
done
}
IFS=$'\n' #这个必须要,否则会在文件名中有空格时出错
INIT_PATH=".";
ergodic $INIT_PATH
使用Shell脚本遍历目录获取文件名、路径和大小
本文介绍了一种利用Shell脚本`lsdir.sh`遍历目录并输出所有文件名、完整路径及文件大小的方法。通过自定义函数`ergodic`递归地访问目录结构,并使用`ls`, `du`和`awk`等命令获取所需信息。
2082

被折叠的 条评论
为什么被折叠?



