情况
我有以下结构:
+ 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个文件,包括路径。目前我正在使用以下代码来做到这一点:
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
如何在文件名之前写入当前工作目录?
不再解析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