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

Tec*_*ore 58 unix shell 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

有任何想法吗?

我找到了几种解决方法使用pwd或者find- 据我所知 - 如果我想保留ls选项,这不起作用.

And*_*ite 63

这个伎俩怎么样......

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

OR

ls -lrt -d -1 $PWD/*
Run Code Online (Sandbox Code Playgroud)

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

[更新]根据评论添加了一些调整,谢谢你们.

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


小智 41

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


小智 14

使用此命令:

ls -ltr /mig/mthome/09/log/*
Run Code Online (Sandbox Code Playgroud)

代替:

ls -ltr /mig/mthome/09/log
Run Code Online (Sandbox Code Playgroud)

获取列表中的完整路径.

  • 如果目录中有许多文件,则无效 (5认同)

小智 6

我用这个命令:

ls -1 | xargs readlink -f
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很好的解决方案,但与简单的`readlink -f`的区别是什么? (2认同)

jo_*_*jo_ 5

从 spacedrop 答案优化...

ls $(pwd)/*
Run Code Online (Sandbox Code Playgroud)

你可以使用 ls 选项

ls -alrt $(pwd)/*
Run Code Online (Sandbox Code Playgroud)

  • 现在不鼓励反引号````,命令替换的新方法是使用`$()` (2认同)