ls:如何在每一行显示目录+文件名

时间:2013-03-25 12:06:49

标签: bash unix ls

我有一个包含很多子目录的目录,我想在每一行列出所有带有特定扩展名的文件,包括它们所在的(子)目录。我现在正在使用:

ls /home/directory -R | grep ".ext" > files.txt

这不会给我我正在寻找的输出...... 理想情况下,我希望输出看起来像这样:

/home/directory/subdirectory1/file1.ext               4.3Mb
/home/directory/subdirectory1/subsubdir1/file2.ext    3.3Mb
/home/directory/subdirectory2/file3.ext               4.6Mb
/home/directory/subdirectory3/file4.ext               5.2Mb
... etc

甚至更好,目录和文件名在不同的列中:

/home/directory/subdirectory1/               file1.ext    4.3Mb
/home/directory/subdirectory1/subsubdir1/    file2.ext    3.3Mb
/home/directory/subdirectory2/               file3.ext    4.6Mb
/home/directory/subdirectory3/               file4.ext    5.2Mb
... etc

关于如何做到这一点的任何想法?非常感谢!

1 个答案:

答案 0 :(得分:6)

find putty -type f -name '*.c' -printf "%h\t%f\t%s\n" | column -t

会产生类似这样的东西

putty          sshzlib.c   38615
putty          notiming.c  584
putty/charset  macenc.c    7129
putty/charset  sbcs.c      1190

如果您想要整个路径,请将您的目录参数显示为从根目录查找为绝对目录路径。