Unix ls命令:使用选项时显示完整路径

时间:2011-04-07 12:14:05

标签: shell unix command-line ls

我经常在Unix(AIX / KSH)中使用这个list命令:

ls -Artl

它显示文件:

-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 test1.txt
-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 test2.txt

我想修改命令,以便显示文件的完整路径。例如:

-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 /usr/test1.txt
-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 /usr/test2.txt

有什么想法吗?

我找到了几种使用pwdfind的解决方法,但据我所知 - 如果我想保留ls选项,这不起作用。

8 个答案:

答案 0 :(得分:62)

这个技巧怎么样......

ls -lrt -d -1 $PWD/{*,.*}

OR

ls -lrt -d -1 $PWD/*

我认为这有空目录的问题,但如果另一张海报有调整,我会更新我的答案。此外,您可能已经知道这一点,但鉴于它的长度,这可能是别名的一个很好的候选者。

[更新]根据评论添加了一些调整,谢谢大家。

[update]正如评论所指出的那样,您可能需要根据shell(bash vs zsh)来调整匹配器表达式。我重新添加了我的旧命令以供参考。

答案 1 :(得分:41)

试试这个,对我有用:ls -d /a/b/c/*

答案 2 :(得分:14)

使用此命令:

ls -ltr /mig/mthome/09/log/*

而不是:

ls -ltr /mig/mthome/09/log

获取列表中的完整路径。

答案 3 :(得分:6)

我使用这个命令:

ls -1 | xargs readlink -f

答案 4 :(得分:4)

从spacedrop回答优化...

ls $(pwd)/*

你可以使用ls选项

ls -alrt $(pwd)/*

答案 5 :(得分:0)

只需使用查找工具。

找到绝对路径

显示我的Linux机器上的完整路径,而

找到relative_path

不会。

答案 6 :(得分:0)

我编写了一个名为 fullpath 的shell脚本,其中包含以下代码,每天都使用它:

    #!/bin/sh
    for i in $* ; do
        echo $(pwd)/$i
    done

将其放在PATH中的某个位置,并使其可执行(chmod 755 fullpath),然后只需使用
完整路径 文件目录或目录

答案 7 :(得分:-1)

您可以组合find命令和ls命令。使用路径(。)和选择器(*)缩小您之后的文件范围。在后引号中包围find命令。 -name的参数是doublequote star doublequote,以防您无法读取它。

ls -lart `find . -type f -name "*" `