我有一个 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而改变,如果是,则如何改变。
答案 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