【问题标题】:Remove all links (aliases) in a directory (tree)删除目录(树)中的所有链接(别名)
【发布时间】:2017-10-09 20:09:59
【问题描述】:

我有一个目录,其中可能包含也可能不包含文件、其他目录或链接。

我想删除所有链接。任何人都知道可以让我快速执行此操作的 bash 脚本吗?

【问题讨论】:

  • 诚实询问;为什么我的问题被否决了?要求了解在写下一篇文章时要记住什么。不加评论的否决是非常具有误导性的。

标签: bash rm ln


【解决方案1】:

谷歌搜索查找目录中的所有链接会导致:

find . -maxdepth 1 -type l

您可以将其与rm 结合使用:

rm `find . -maxdepth 1 -type l`

【讨论】:

  • 为什么有人会反对这个? maxdepth 是警告性的,但如果 OP 不想要它很容易删除,我 SURE 希望他在任意执行他不理解的代码之前阅读手册页......我确实明白了OP 要求递归删除,但对此的反对似乎有人可能只是在寻找徽章?
【解决方案2】:

参考this

如果你够勇敢,试试这个 -

find $dirPath -type l | xargs rm -f 

【讨论】:

  • 你应该小心这个命令,它会递归删除链接,即任何子目录(和子子目录)中的所有链接。
  • 是的,它很快但非常笨拙。我很可能只是将列表写入文件并首先观察它,然后根据需要进行编辑,并在满意时将该列表提供给 xargs 或其他脚本。 ...但它符合请求。
猜你喜欢
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 2020-12-22
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
相关资源
最近更新 更多