【问题标题】:use ls to rm a list of files使用 ls 来 rm 文件列表
【发布时间】:2015-12-22 05:41:39
【问题描述】:

我解压了大量文档,忘记勾选“保留目录结构”,所以现在尝试删除所有这些文件。这些文件在我的下载文件夹中,没有文件夹结构。

我已将文件再次解压缩到不同的位置,并尝试使用以下命令删除平面文件。

for file in $(find . -type f -printf '~/Downloads/%f\n'); do rm $file; done

它说不能删除文件,因为它不存在,但是如果我将它吐出的路径复制到rm,它会找到并删除它。

rm: cannot remove `/home/macpherson/Downloads/SN74LS14N': No such file or directory

与xargs 的结果相同

有什么想法吗?

谢谢汤姆

【问题讨论】:

  • 您能否举例说明文件在存档中的组织方式以及它们在本地文件系统上的位置?
  • 在存档中,它们位于多个文件夹中,可能包含多层子目录。它们被提取到没有目录结构的~/Downloads
  • 嗯,这不是一个真正的例子...... ;-)

标签: find ls xargs rm


【解决方案1】:

在其他地方提取相同的存档(如果需要,您可以在之后安全地删除它)。然后使用它来查找必须删除的文件:

find . -type f | sed -e 's/.*\//\/home\/macpherson\/Downloads\//' | xargs rm

【讨论】:

  • 谢谢!下载后需要额外的 \/。也不确定这是否适用于名称中带有空格的文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
  • 2020-03-12
  • 2013-07-23
  • 2012-09-06
  • 1970-01-01
  • 2017-08-13
相关资源
最近更新 更多