BASH脚本:列出包括子目录在内的所有文件,并按日期对它们进行排序

时间:2017-02-23 14:00:51

标签: bash unix

我有一个bash脚本:

for entry in "/home/pictures"/*
do
  echo "ls -larth $entry"
done
  1. 我还要列出子文件夹中的文件并包含其路径
  2. 我想按日期对结果进行排序
  3. 它必须是一个bash脚本,因为其他一些软件(Jenkins)会调用它。

3 个答案:

答案 0 :(得分:1)

尝试查找。

find /home/pictures  -type f  -exec ls -l --full-time  {} \; | sort -k 6

答案 1 :(得分:0)

如果文件名中没有换行符,请使用:

find /home/pictures -type f -printf '%T@ %p\n'|sort -n

如果您无法容忍输出中的时间戳,请使用:

find /home/pictures -type f -printf '%28T@ %p\n' | sort -n | cut -c30-

如果文件名中有新行可能,如果您可以使用消耗输出的程序接受空终止记录,则可以使用:

find /home/pictures -type f -printf '%T@,%p\0' | sort -nz

如果输出中没有时间戳,请使用:

find /home/pictures -type f -printf '%28T@ %p\0' | sort -nz | cut -zc30-

P.S。 我假设您想按最后修改时间排序。

答案 2 :(得分:0)

我找到了问题的解决方案:

找到。 -name * -exec ls -larth {} +