ls 语法显示文件名和目录

ls 语法显示文件名和目录

我希望使用该ls命令,结果如下所示:

folder1/file1.doc
folder1/file2.doc
folder1/file44.doc
folder3/file1.doc
folder66/file4.doc
folder999/file.doc

换句话说,我想输出每行的目录名称以及文件名。

cd myfolder
ls * > output.txt

我想我需要在ls上面的行中添加一些命令。

可以使用吗ls

答案1

使用起来更容易find

find folder* -type f > output.txt

通配符将扩展到所有文件夹名称,并将以文件夹名称为前缀递归列出文件及其路径。

答案2

正如最近讨论的那样从某个点获取所有文件路径...(在 AU 上),您可以按如下方式进行操作:

shopt -s globstar
ls -d1 **

请注意,ls选项是小写 D 和数字 1。请注意,ls除了列出其参数外,这里实际上没有做任何事情;你不妨说

printf "%s\n" **

这些并不局限于一定数量的级别。

如果要包含以点 ( .) 开头的名称,您还必须shopt -s dotglob

答案3

如果您只有一层(即,所有当前子目录中都没有子目录),那么

ls -1 */*

应该可以满足您的要求。请注意,选项是数字 1,而不是字母 ell。

如果你确实有子目录,但不需要这些子目录的文件列表,那么

ls -1d */*

应该可以做你想做的事。同样,选项是 one dee,而不是 ell dee。

如果你的文件布局太复杂,那么你将需要一个find语句,例如

find . -print | sed s:./::

相关内容