使用“ls”和“find”打印完整路径名

使用“ls”和“find”打印完整路径名

我想ls用绝对路径名打印,我该怎么做?

find / -type d -mount -exec ls -ls  {} \;

ls仅打印目录中的相对文件名。

答案1

POSIXly:

find / -xdev -type d -exec sh -c 'for d; do ls -lsd "$d"/*; done' sh {} +

-xdev具有相同的效果,-mount但可移植。

请注意,这在空目录上会失败。

答案2

ls这是将目录作为参数给出时的常见行为。所以你必须避免ls专门处理目录。

  1. 您必须将文件路径传递给ls, ie-type f而不是-type d.

  2. 如果您也想传递目录(否),那么您需要的-type f选项。-dls

答案3

将要执行的命令更改为echo

find / -type d -mount -exec echo {} \;

相关内容