想删除特定目录下的特定名称的目录,终端命令该怎么写?

2014-10-25 15:57:18 +08:00
 70599
比如,我想

删除“mnt/2TB/”目录及其子目录下所有名为“@123Abc”的文件夹

终端命令该怎么写?

如果目标是特定文件名的文件,命令会不会有所不同?

谢谢各位
2856 次点击
所在节点    Linux
9 条回复
zent00
2014-10-25 16:06:03 +08:00
楼主是不是应该整理一下你的问题?

“mnt/2TB/” 都被删除了,下面哪里还有名为 “@123Abc” 的子目录。
tru
2014-10-25 16:13:45 +08:00
cd 到该目录中
find . -type d -name "@123Abc" | xargs rm -rf
70599
2014-10-25 16:13:58 +08:00
@zent00
我不认为需要整理。

“~的”之前的部分,是最后一个词“文件夹”的描述。
提取句子主干结果是“删除文件夹”,删除什么文件夹呢?
““mnt/2TB/”目录及其子目录下所有名为“@123Abc”的”文件夹。

也许下面的描述方法是你所能读懂的。
要删除的目录名 = “@123Abc”
要删除的目录随机分布于“mnt/2TB/”目录及其子目录中。
Shazoo
2014-10-25 16:28:38 +08:00
楼主写的的确不科学呢。

2楼正解。不过“@”需不需要转义啊?
70599
2014-10-25 16:31:22 +08:00
@tru

谢谢,不过你的这个命令执行后输出:
xargs: argument line too long
目标没有被删除。

我用你的命令Google出另一条接近的:
find . -name "@eaDir" -exec rm -rf "{}" \;
在我这里效果良好。
70599
2014-10-25 16:33:43 +08:00
@Shazoo

确实在前面断句会读出母目录被删除的感觉。
@就是文件夹名的一部分,无需转义
tru
2014-10-25 16:37:52 +08:00
@70599
哈,这是我以前用来删 .svn 目录的命令。。。
现在用 git 了,暂时没有这样的需求了
rrfeng
2014-10-25 16:41:17 +08:00
断句有歧义罢了。

删除“mnt/2TB/”目录 及其子目录下所有……
删除“mnt/2TB/”目录及其子目录下 所有……


另外真的是 xargs 参数过长而不是 exec 过长么……
70599
2014-10-25 16:48:01 +08:00
@rrfeng
>真的是 xargs 参数过长而不是 exec 过长么?
看起来是的。
http://i.share.pho.to/747b9b6e_o.png

exec删除成功,输出大量信息,我就不截图了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141459

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX