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



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

#!/usr/bin/ksh
cd /asd/ded/ses/ddd/rty/leg/
rm *.sas7bdat
rm p_bt*

不幸的是,它清除了这个目录下的所有文件,但现在我只希望它在"父目录"中清除,即"/asd/ded/ses/dddd/rty/leg/",而不是在"/asd/de/s/dddd/rry/leg/21_11"中,这是它里面的子目录。

我知道在bash中rm级是可能的。KSH的情况会改变吗?如果会,会如何改变。

孤独灵魂,

Chepner是正确的。ksh中"rm"的默认值是仅删除当前目录中的文件。您可以通过添加"-r"选项从较低的目录中(递归地)删除文件。

如果你观察到不同的行为,你的个人资料中可能有一个别名设置。请尝试输入"where 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

最新更新