首页 > 解决方案 > sed:打印带有时间和 ls -altr 信息的目录树

问题描述

下面打印出当前位置的目录结构,就是我想要的。但是,由于我使用的是 find 命令,因此没有额外的元信息,例如时间、大小等。

有没有办法让我在每个名称旁边列出 ls -altr 信息?我主要关心ls -altr的大小、日期和时间字段。

find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
.
 |-one
 |-two
 | |-two_2
 | |-two_1
 |-test_file

例如:

 |-one 4096 Mar  6 16:37

标签: linuxsedcommand-lineprinting

解决方案


这类似于赛勒斯的已删除答案。问题在于返回的日期格式%Ax包含斜杠。

find . -printf "%p (%s, %Tb %Td %TY %TH:%TM)\n" |
  sed -E 's,[^/]+/,|-,g; s,^\|,-|,; s,-\|, |,g'

推荐阅读