gpt4 book ai didi

linux - 如何编写一个 oneliner 来删除给定目录中除具有给定名称的文件之外的所有文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:50 29 4
gpt4 key购买 nike

我正在尝试编写一个 oneliner(在我的 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 中尝试它时,它删除了整个文件夹

最佳答案

使用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

关于linux - 如何编写一个 oneliner 来删除给定目录中除具有给定名称的文件之外的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56190416/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com