【问题标题】:Deletion of Directory in linux ( can't even ls that directory) [closed]在linux中删除目录(甚至不能ls那个目录)[关闭]
【发布时间】:2015-11-03 01:12:41
【问题描述】:

我有一个名为pics_temp 的目录,它太大了,我什至不能ls 那个目录,它有数百万个文件。我想删除那个文件。我不能使用rmrmdirxargs rm -rf,因为这将花费更长的时间并且程序将自行终止,那个目录很大......有什么办法可以删除它目录?

我可以编写 shell 脚本并将其放入 cron 作业中还是有其他方法可以删除该目录中的内容?

感谢您的帮助。

【问题讨论】:

  • 我认为这里离题了,你应该把它发到超级用户上
  • 为什么你认为“程序会自行终止”?什么时限约束系统施加了这种限制?即使它确实提前终止,它也会取得一些进展,并且进一步的运行应该会取得更多进展,直到最终完成
  • 我需要那个文件夹,我想删除那个文件夹中的内容。如果我想删除这么大的巨型目录,哪个工作得更快。请给我您的宝贵意见
  • 您可以在后台执行。这需要时间,但不会影响您的前台进程。

标签: linux shell cron sh superuser


【解决方案1】:

试试find

find pics_temp -mindepth 1 -print -delete

find 像这样调用不会尝试缓冲大量文件名,并且不会受到参数列表的最大长度或分叉进程数百万次所需的时间的限制。 -mindepth 1 将导致它删除 pics_temp 中的所有内容,但不会删除目录本身。

它也不依赖printf %s\\n *ls 或其他此类命令,这些命令都有一个缺点,即在开始生成输出之前需要知道所有文件。

上面给出的命令有-print,它将在删除文件之前打印文件。这可能有助于告诉您某些事情正在实际发生,但它会减慢操作速度。当您确信它可以正常工作时,您可能需要删除 -print 以便命令运行得更快。

【讨论】:

  • 这也需要时间删除。
  • 不管怎么做,删除这么多文件都需要很长时间。
猜你喜欢
  • 1970-01-01
  • 2011-12-04
  • 2017-03-27
  • 1970-01-01
  • 2022-01-01
  • 2014-01-10
  • 2022-06-15
  • 1970-01-01
  • 2011-07-07
相关资源
最近更新 更多