哪个目录有更多的文件,哪个有更多的子目录?
Which directory has more files and which has more subdirectories?
我想编写一个 shell 脚本来比较两个目录的大小
X 和 Y,并报告哪个目录有更多文件,哪个目录有更多子目录。所以 X 和 Y 是两个参数。
我知道统计目录中文件的代码是
ls -l | wc -l
我在论证和比较方面遇到了一些麻烦。
子目录也一样。我是 shell 脚本的新手,因此将不胜感激。
对于文件你可以做的:
filesX=$(find "${X}" -type f | wc -l)
filesY=$(find "${Y}" -type f | wc -l)
if (( filesX < filesY )); then
echo "${Y} has more files"
elif (( filesX > filesY )); then
echo "${X} has more files"
else
echo "${X} and ${Y} have same number of files"
fi
dirs 基本相同:
dirsX=$(find "${X}" -type d | wc -l)
dirsY=$(find "${Y}" -type d | wc -l)
if (( dirsX < dirsY )); then
echo "${Y} has more dirs"
elif (( dirsX > dirsY )); then
echo "${X} has more dirs"
else
echo "${X} and ${Y} have same number of dirs"
fi
我想编写一个 shell 脚本来比较两个目录的大小 X 和 Y,并报告哪个目录有更多文件,哪个目录有更多子目录。所以 X 和 Y 是两个参数。
我知道统计目录中文件的代码是
ls -l | wc -l
我在论证和比较方面遇到了一些麻烦。
子目录也一样。我是 shell 脚本的新手,因此将不胜感激。
对于文件你可以做的:
filesX=$(find "${X}" -type f | wc -l)
filesY=$(find "${Y}" -type f | wc -l)
if (( filesX < filesY )); then
echo "${Y} has more files"
elif (( filesX > filesY )); then
echo "${X} has more files"
else
echo "${X} and ${Y} have same number of files"
fi
dirs 基本相同:
dirsX=$(find "${X}" -type d | wc -l)
dirsY=$(find "${Y}" -type d | wc -l)
if (( dirsX < dirsY )); then
echo "${Y} has more dirs"
elif (( dirsX > dirsY )); then
echo "${X} has more dirs"
else
echo "${X} and ${Y} have same number of dirs"
fi