【问题标题】:how to use find -ls command to list only files and not folders?如何使用 find -ls 命令仅列出文件而不列出文件夹?
【发布时间】:2014-12-26 05:32:21
【问题描述】:

我已经在共享服务器上填充了我的配额空间,我不知道这是怎么发生的,我想这取决于我的一个分析已经存储在某个隐藏文件夹中的东西(现在我必须找到在哪里..)。 奇怪的是,根据“du -csh”,我的文件夹大小的总和远低于它所说的“配额”。 我需要列出服务器中的所有文件及其大小、所有权和目录。 从根文件夹运行 find -ls 会完成这项工作,但它也会列出所有文件夹和子文件夹

无论如何只列出文件?我还需要列出隐藏文件夹中的所有文件,非常感谢

【问题讨论】:

  • 这属于 unix.stackexchange.com。

标签: bash shell find ls


【解决方案1】:

回答你的主要问题:

ls -p | grep -v / 

看来您还有其他问题。请运行

lsof | grep 删除

当您看到一些字符串时,只需重新启动锁定此文件的服务。

【讨论】:

  • 非常感谢,ls -p | grep -v / 有效,但仅适用于特定文件夹中的文件,而不适用于子文件夹中的文件。无论如何我可以解决这个问题吗?
  • 你能解释一下第二个代码是什么吗?我得到了很多带有“已删除”的字符串
  • 那我猜对了。当您重新启动此服务时,磁盘空间将可用。当某个服务使用某个文件并且您删除该文件时,它实际上并没有从文件系统中删除,直到程序停止使用它。关于递归 ls:ls -R -p | grep -v /
  • lsof | grep "(deleted)$" | sed -re 's/^\S+\s+(\S+)\s+\S+\s+([0-9]+).*/\1\/fd\/\2/' | while read file; do sudo bash -c ": > /proc/$file"; done。说明:Grep lsof 输出仅提取已删除的文件。 sed 从每一行中提取进程 id 和文件描述符 id,并创建一个格式为 {pid}/fd/{fid} 的字符串。 While 循环并且不向每个文件输出任何内容,将它们设置为空。
猜你喜欢
  • 1970-01-01
  • 2013-09-22
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
相关资源
最近更新 更多