小编Dem*_*ger的帖子

删除与列表不匹配的文件夹

我需要实际示例如何删除不在 Linux 列表中的文件夹。所以我不需要比较它的内容或 md5sums,只需比较文件夹名称。

例如,一个文件夹里面有几个文件夹

target_folder/
??? folder1
??? folder2
??? folder3
??? folder4
Run Code Online (Sandbox Code Playgroud)

我的文件夹名称列表是 txt 文件,包括文件夹 1、文件夹 2 而不是文件夹 3 和文件夹 4。

如何通过bash脚本删除folder3和folder4?

这已在 serverfault 上回答为

GLOBIGNORE=folder1:folder2
rm -r *
uset GLOBIGNORE
Run Code Online (Sandbox Code Playgroud)

但我真正的任务是删除一堆文件夹。txt 列表包含大约 100 个文件夹,要清理的目标文件夹是 200 个文件夹。

请注意,这应该适用于 Linux 和 FreeBSD。

编辑: target_folder 可能包含带有子文件夹和文件的文件夹。没有空格和前导点和名称不相似:foo.com bar.org emptydir file.txt simplefile。但除列表中的名称外,所有这些项目都应删除。

第一个答案更明显和简单。第二个更高级和灵活,它也允许您根据项目类型进行删除。

bash shell-script

6
推荐指数
2
解决办法
4294
查看次数

标签 统计

bash ×1

shell-script ×1