环境介绍:
操作系统:solaris 10
主机名称:fly007
用户:oracle SHELL:/usr/bin/csh,执行du -sh *报du: illegal option -- p错误
fly007% id uid=200(oracle) gid=120(oinstall) fly007% bash fly007% pwd //该路径在根文件系统,为oracle用户的家目录 /export/home/oracle bash-3.00$ echo $SHELL /usr/bin/csh bash-3.00$ du -sh * //在空间需要清理的时候,使用du -sh *报错,对于清理空间造成很大的不便 du: illegal option -- p usage: du [-a] [-d] [-h|-k] [-r] [-o|-s] [-H|-L] [file ...] bash-3.00$ du -sh ./* | head -5 0K ./-p 504K ./0116 1.4M ./0117_patch 1K ./0421.sh 153M ./0503bak bash-3.00$ cd /opt/oracle/ //相同的用户进入其他目录,则可以使用du -sh * bash-3.00$ du -sh * | head -5 1.9M fly_0926bak.dmp 2K fly_pfile_1229 2K fly_pfile_20111110 32M OPatch 29M OPatch_1229.bak
用户:root SHELL:/sbin/sh 执行du -sh *报du: illegal option -- p错误
bash-3.00# id uid=0(root) gid=0(root) bash-3.00# echo $SHELL /sbin/sh bash-3.00# pwd //该路径在根文件系统,为root用户的家目录 / bash-3.00# du -sh * du: illegal option -- p usage: du [-a] [-d] [-h|-k] [-r] [-o|-s] [-H|-L] [file ...] bash-3.00# du -sh ./* | head -5 1K ./-p 1K ./1 1K ./1.sh 15K ./1.txt 1K ./3.sh bash-3.00# cd /kernel/ //相同的用户进入其他目录,则可以使用du -sh * bash-3.00# pwd /kernel bash-3.00# du -sh * 497K crypto 102K dacf 31M drv 264K dtrace 125K exec
用户:fly007 SHELL:/bin/sh 可以正常执行du -sh *
$ id uid=893(fly007) gid=892(gfly007) $ echo $SHELL /bin/sh $ pwd /home/fly007 $ du -sh * 0K 1.txt 0K 2.txt 3K system.bak
从上面的测试看来,应该是和用户的SHELL有关导致,在solaris 10操作系统/bin/sh的用户是
可以正常使用du -sh *的,/usr/bin/csh和/sbin/sh不能正常使用du -sh *来查看当前路径下
所有文件和文件夹的大小,另外为什么cd进入到非家目录后就可以正常执行du -sh *,不明白,
在linux侧,目前还没有碰到这种情况。
转载于:https://blog.51cto.com/fly007/1353714