linux 相当于 dir /b /s /a:-D (递归打印所有文件的完整路径)

linux 相当于 dir /b /s /a:-D (递归打印所有文件的完整路径)

我今天刚刚迁移到 Linux,我想知道如何使用 ls 命令执行此操作(ar 你认为最好的)。这个想法是获取目录中具有完整路径的所有文件,包括子目录...我使用的cmd命令是:

dir /b /s /a:-D

答案1

据我所知,您的dir命令会下降到子目录(/S),跳过标题和摘要(/B)并省略其文件d目录A属性已设置 ( /A:-D)

在 Linux 中执行此操作的可移植方法是通过find命令 - 默认情况下它会进入子目录,并且可以通过添加来省略目录-not -type d!可以用作 的同义词-not

默认情况下,它报告相对于起始点的路径,因此要获取绝对路径,您可以使用 shell 的当前工作目录变量PWD

find "$PWD" -not -type d

如果您使用的 shell 支持递归模式匹配(又名“globstar”)和 glob 限定符,还有其他选项 - 例如zsh您可以这样做

ls -1d **/*(^D:A)

或者简单地

printf '%s\n' **/*(^D:A)

您可能还需要考虑您是否真的想要“非目录”或“纯文件”:

find "$PWD" -type f

或(zsh)

printf '%s\n' **/*(.:A)

相关内容