非常实用的工具,随手拿着 #!/bin/sh listdir(){ for file in "$1"/* do if [ -d "$file" ] then listdir "$file" elif [ -f "$file" ] then ls -l "$file" fi done } listdir "$1" 过程中出现错误,原因有二: 1,如果$file和$1不加上引号,则在处理有空格的文件和目录时,会出现错误。 2,如果用if/else而不用if/elif,当遇到空目录时,会出现“没有此文件或文件夹”的错误。原因在于 $1/*没有可展开的文件,则会把“*”当初文件名,如出现诸如 ls -l /tmp/path/*