我正在尝试编写一个单件套(在Windows笔记本电脑上运行的ubuntu上),该文件将删除目录floop中的每个文件,但具有给定名称的文件file keep me
除外。
这是我已经得到的:
for foo in /floop;
do
if [ ! $foo == "file keep me" ];
then
rm -r $foo;
fi;
done
我得到的错误是:
rm: cannot remove '/floop': No such file or directory
此刻我正在floop/
目录本身中尝试它,因为当我在homedir中尝试它时,它删除了整个文件夹
答案 0 :(得分:3)
使用find
:
find /path/to/folder -maxdepth 1 -type f ! -name 'name of file' -delete
PS:for循环的正确版本为:
for foo in /floop/* ;
do
# Skip the file you want to keep
if [ "$foo" = "/floop/file keep me" ] ;
then
continue
fi
# Skip directories
if [ -d "$foo" ] ;
then
continue
fi
# Remove other files
rm "$foo"
done