使用`ls`仅打印文件和目录的完整路径

javadba

对于给定的目录,请求是打印文件和目录的完整路径

例如

      /a/b/c/
            file1
            file2
            dir1/

该命令应显示

/a/b/c/file1
/a/b/c/file2
/a/b/c/dir1

它的形式可以是

ls -<something> .

要么

ls -<something> /a/b/c

我认为这将是微不足道的,但是并没有仔细研究所有的ls开关。我是否想念它-还是应该find使用其他类似的东西

卡米尔·马乔洛夫斯基(Kamil Maciorowski)

find几乎可以在默认情况下为您提供所需的格式。必须要与您提供的路径开始使用路径名,如此规定/a/b/c

find /a/b/c

相当于

find /a/b/c -print

这里有两个问题:

  1. /a/b/c 也将被打印。
  2. find递归工作。dir1在您的示例中是否为空还是省略其内容尚不清楚您可能想要也可能不想递归。

如果您支持可以分别通过-mindepth 1解决该问题-maxdepth 1find

find /a/b/c -mindepth 1 -maxdepth 1

POSIX不需要这些选项。使用POSIXfind可以禁止/a/b/c使用! -path /a/b/c; 您可以-maxdepth 1按照以下步骤“模拟” 将POSIX查找限制为特定深度?

这是POSIX解决方案:

find /a/b/c ! -path /a/b/c -prune

鞋底/a/b/c不会通过! -path测试。通过的所有内容都将被修剪,因此该工具不会下降得更深。

提供起始路径为/a/b/c/(请注意末尾斜杠)需要您使用! -path /a/b/c/(也要有末尾斜杠),因为find必须严格按照提供的路径引用其起始路径。/a/b/c/不匹配/a/b/c,反之亦然。切记-path将参数作为模式对待,如果您的起始路径包含*用于Pattern Matching Notation的文字或其他字符,则这一点很重要


您请求了特定的格式,所以也许您想解析输出。在这种情况下find,您的工具是您的工具,但ls绝对不是,因为您不应该解析的输出ls如果您find是GNU find,请检查中的UNUSUAL FILENAMES部分man 1 find考虑一下-print0

在评论中,您得到了此问题的链接那里的许多解决方案都需要为某些工具(例如readlink提供路径如果原始路径来自ls,则已经是“解析ls”操作-不建议这样做。

但是,从另一个问题出发的工具在您的情况下可能有用,可以将相对路径转换为./cc将完整路径转换为/a/b/c然后,您提供前往的完整路径find

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何仅打印完整路径名的文件部分?

查找文件并打印完整路径

Bash - 从 $PATH 打印文件的完整路径

如何从文件的完整路径获取目录?

使用子目录列出指定路径中具有完整路径和大小的所有文件名

打印父目录的查找输出的完整路径

使用CDPATH =“。:/ some / path”时,如何抑制将完整路径打印到子目录?

如何仅获得父目录的名称,而不是完整路径?

从JSON目录树中的文件完整路径计算目录

在Linux中使用ls命令列出文件的完整路径

获取在UNIX中具有完整路径的文件和目录的列表

如何在Android的下载目录中获取每个文件的完整路径和名称

从文件的完整路径仅获取文件名

从文件获取目录名而不使用完整路径

使用Bash列出具有完整路径的当前目录中的文件

如何创建从根目录到文件完整路径的映射

如何获取当前文件目录的完整路径?

如何从文件选择器获取完整路径目录

如何获取与某些文件同名的目录的完整路径?

如何从C中的完整路径获取文件目录

如何去除仅保留文件名的完整路径?

Unix递归仅列出文件的完整路径

列出目录(和子目录)中的所有文件(具有完整路径),按访问时间排序

如何列出具有给定目录的所有文件和目录,但没有完整路径?

ls 递归,显示完整路径

如何使用cmd递归查找所有文件并显示完整路径和行号?

使用php浏览文件时写入文件的完整路径

使用BATCH清理文件名以命名完整路径

如何使用PHP从完整路径获取文件名?