gpt4 book ai didi

linux - 根据另一个位置的目录列表从一个位置删除一堆目录?

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

我在文件系统中有两个完全不同的目录:/路径1/目录1/*/路径2/目录2/*

dir1 有一个子目录列表,dir2 有一个类似的子目录列表,其中一些也在 dir1 中

我想要一个可以使用当前在 dir1 中的子目录列表的命令,如果它们存在于 dir2 中,则删除它们。

我能够使用 find 命令输出子目录名称的列表,并像这样一起 sed:

找到 $PWD -maxdepth 1 -type d | sed -e 's\^/path1/dir1///g' 将输出:子目录 1子目录 2子目录 3

但我不知道如何将其输入命令以从另一个位置(递归地)删除那些子目录。我需要使用 awk 或 xargs 还是什么?

最佳答案

听起来你想要这样的东西:

cd /path1/dir1; find . -type d -maxdepth 1 -mindepth 1 -exec rm -rf /path2/dir2/{} \;

将“rm -rf”替换为“echo”以在尝试之前查看它将删除哪些目录:-)

如果目录不存在,“-f”选项可以防止错误

某些版本的 find(GNU?)也有“-execdir”。你可以像这样使用它:

find /path1/dir -type d -maxdepth 1 -mindepth 1 -execdir rm -rf /path2/dir2/{} \;

关于linux - 根据另一个位置的目录列表从一个位置删除一堆目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318828/

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