gpt4 book ai didi

linux - 如何删除Linux目录下所有非单个文件?

转载 作者:太空宇宙 更新时间:2023-11-04 04:33:54 25 4
gpt4 key购买 nike

我在 Linux 机器上的目录中有重复的文件,其列出如下:

ltulikowski@lukasz-pc:~$ ls -1
abcd
abcd.1
abcd.2
abdc
abdc.1
acbd

我想删除所有不单一的文件,因此我应该:

ltulikowski@lukasz-pc:~$ ls -1
acbd

最佳答案

该函数使用extglob,因此在执行之前,设置extglob:shopt -s extglob

rm_if_dup_exist(){ 
arr=()
for file in *.+([0-9]);do
base=${file%.*};
if [[ -e $base ]]; then
arr+=("$base" "$file")
fi
done
rm -f -- "${arr[@]}"
}

这还支持 . 之后包含多个数字的文件名,例如abcd.250 也可以。

<小时/>

您输入的使用示例:

$ touch abcd abcd.1 abcd.2 abdc abdc.1 acbd
$ rm_if_dup_exist
$ ls
acbd
<小时/>

请注意,例如,如果abcd.1存在,但abcd不存在,则不会删除abcd.1

关于linux - 如何删除Linux目录下所有非单个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36069551/

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