【发布时间】:2013-12-04 14:21:49
【问题描述】:
我刚刚制作了一个非常基本的 shell 脚本,它接受一个输入路径并显示该路径中文件的属性。
问题:该脚本正在我的 PC 上运行,但是当我尝试在我的大学 UNIX 服务器上运行它时,我收到了一个错误:
find: bad option -printf
find: path-list predicate-list
- 我的电脑:Ubuntu
- 我的大学服务器:SunOS nyx 5.9 Generic_118558-11 sun4u sparc SUNW,Sun-Fire-V210
代码:
#!/bin/bash
echo " enter address in form : /home/rohan/../.."
read ARG
if [ -n "$ARG" ]; then
echo "input path taken : $ARG"
# ls -lsh $ARG"/"*.txt
else
ARG=$(pwd)
fi
echo " enter option "
echo " 1. file size, 2. permission, 3. owner/group, 4. all , 5. exit"
read OPTION
while [ $OPTION != "5" ]
do
if [ $OPTION = "1" ]; then
find $ARG"/"*.txt -printf " %p %s bytes \n"
elif [ $OPTION = "2" ]; then
find $ARG"/"*.txt -printf " %p %M \n"
elif [ $OPTION = "3" ]; then
find $ARG"/"*.txt -printf " %p %g \n"
elif [ $OPTION = "4" ]; then
find $ARG"/"*.txt -printf "%p %s bytes %M %g \n"
fi
echo "enter option again"
echo " 1. file size, 2. permission, 3. owner/group, 4. all , 5. exit"
read OPTION
done
【问题讨论】:
-
Sun 上的旧查找版本不支持
-printf选项 -
谢谢。有没有办法我可以用另一种方式实现它?
-
尝试
find /opt/sfw -name find -print看看管理员是否在那里安装了 GNU find。 -
它也可以在 /usr/sfw 或 /usr/local/bin 中,blastware.com 及其后继 optcsw.com 让您确定安装位置。