使用Bash列出当前目录中包含完整路径的文件

时间:2014-04-10 15:45:20

标签: bash list file shell path

场合

我有以下结构:

+ Folder 1
--20140410.txt
--20140409.txt
--20140408.txt
--20140407.txt
--20140406.txt
--20140405.txt
--20140404.txt

+ Folder 2
--20140410.txt
--20140409.txt
--20140408.txt
--20140407.txt
--20140406.txt
--20140405.txt
--20140404.txt

我需要“最新”(取决于文件名)5该目录中的文件,包括Path。 目前我正在使用以下代码:

for i in `find /mydirectory/ -type d` ; do cd $i && ls *.* | sort -n -r | head -5 >> /mydirectory/myfile.txt ; done

因此,对于我找到的每个目录,我都会列出文件,按名称对它们进行反序排序,然后在第5行后剪切。

结果如下:

20140410.txt
20140409.txt
20140408.txt
20140407.txt
20140406.txt
20140410.txt
20140409.txt
20140408.txt
20140407.txt
20140406.txt

如何在“文件名之前”编写当前工作目录?

1 个答案:

答案 0 :(得分:1)

而不是parsing ls,再次使用find

for i in $(find /mydirectory/ -type d); do cd $i && find $PWD -type f -name "*.*" | sort -nr | head -5 >> /mydirectory/myfile.txt; done