【问题标题】:file and path listing separator : [duplicate]文件和路径列表分隔符:[重复]
【发布时间】:2016-11-29 02:03:30
【问题描述】:

我需要列出文件夹/cd/dvd 的文件夹结构,但我需要显示路径和文件名。我可以使用 find 命令来做到这一点:

find /path*

但不是通常的 / 作为分隔符,我需要分隔符是:

所以当我在文件夹上使用 find 时,我会得到以下输出:

2D/Resource/2011 Brand-Guidelines/1664/Logos/1664/Small/K1664-CMYK-Background-Small.ai
2D/Resource/2011 Brand-Guidelines/1664/Logos/1664/Small/K1664-PMS-Background-Simple-Small.ai
2D/Resource/2011 Brand-Guidelines/1664/Logos/1664/Small/K1664-PMS-Background-Small.ai
2D/Resource/2011 Brand-Guidelines/1664/Logos/1664/Small/K1664-PMS-Simple-Small.ai

但我需要它像这样显示输出:

2D:Resource:2011 Brand-Guidelines:1664:Logos:1664:Small:K1664-CMYK-Background-Small.ai
2D:Resource:2011 Brand-Guidelines:1664:Logos:1664:Small:K1664-PMS-Background-Simple-Small.ai
2D:Resource:2011 Brand-Guidelines:1664:Logos:1664:Small:K1664-PMS-Background-Small.ai
2D:Resource:2011 Brand-Guidelines:1664:Logos:1664:Small:K1664-PMS-Simple-Small.ai

这是因为用户通常会在不应该使用的文件名中使用斜杠。

【问题讨论】:

  • 在 Linux 下创建一个名称中带有/ 的文件甚至都不应该可能
  • 这些文件是在 OS X 中创建的,Apple 用户无法理解您不应该在文件名中使用这些符号和许多其他符号。因此,尽管我努力教育,总会有人这样做。
  • 即使在 OS X 中,我认为尝试在文件或文件夹名称中使用/ 确实会创建一个使用: 代替/ 的文件系统条目。 Finder 在其元数据中保留/-version,但文件系统本身禁止/

标签: linux bash terminal find command


【解决方案1】:

这是一个建议:

find /path* | sed 's/\//:/g' 

find /path* | tr '/' ':'    

两者都能满足你的要求。

【讨论】:

  • “它不能工作”是什么意思? find | sedfind | tr 都在这里工作,没有临时文件。
  • @tripleee 我只是尝试,它也有效,我会改变答案。谢谢你提到这一点。
  • 效果很好。非常感谢
猜你喜欢
  • 2018-11-17
  • 2015-02-09
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
相关资源
最近更新 更多