文件和路径列表分隔符:

问题描述:

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

find /path* 

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

所以当我用找到的文件夹我得到以下输出上:

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 

这是因为通常用户当他们不应该的时候,会在文件名中使用斜杠。

+4

在Linux下它甚至不应该*可能*创建一个名称为'/'的文件。 – chepner

+0

这些文件是在OS X中创建的,Apple用户无法理解您不应该在文件名中使用这些符号和其他许多符号。因此,尽管我试图教育,总会有人这样做。 – Skeates

+0

即使在OS X中,我想在文件或文件夹名中使用'/'确实会创建一个使用':'代替'/'的文件系统条目。 Finder在其元数据中保留了'/'-version,但文件系统本身禁止'/'。 – chepner

这里有一个建议:

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

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

他们都能够满足您的要求。

+0

“它无法工作”是什么意思? 'find | sed'和'find | tr'都在这里工作,没有临时文件。 – tripleee

+0

@tripleee我只是尝试,它也可以工作,我会改变答案。谢谢你提到这一点。 –

+0

工作完美。非常感谢你 – Skeates