仅在KSH中删除一级目录上的文件

时间:2013-11-25 16:46:18

标签: bash unix ksh

我有一个 rm 命令可以清除特定目录中的所有文件。

#!/usr/bin/ksh

cd /asd/ded/ses/ddd/rty/leg/

rm *.sas7bdat
rm p_bt*

不幸的是它会清除此目录下的所有文件,但现在我只想在“父目录”中清除它,即“/ asd / ded / ses / ddd / rty / leg /”,不在“/ asd / ded / ses / ddd / rty / leg / 21_11”中,这是其中的子目录。

我知道在bash中可以使用rm级别。是否为KSH而改变,如果是,则如何改变。

1 个答案:

答案 0 :(得分:0)

LonelySoul,

切普纳是对的。 ksh中“rm”的默认值是仅删除当前目录中的文件。您可以通过添加'-r'选项来删除较低目录中的文件(递归)。

如果您观察到不同的行为,您可能会在个人资料中的某个位置设置别名。尝试输入'whence rm'以查看是否存在导致意外行为的别名。

实施例

>pwd
 /tmp
>touch abc.txt
>mkdir ced
>touch ced/abc.txt
>rm abc.txt (will remove abc.txt in /tmp, but leave the file in directory ced.
>whence rm
rm -f