用于打印具有大小和日期的文件树的Shell脚本

时间:2015-07-27 21:24:42

标签: bash tree directory-listing

我的Synology NAS Cloud Station(如Dropbox)存在一些问题。不知何故,我的本地版本与服务器上的版本不同步。检查差异并获得概述是一件痛苦的事。我想打印一个树形结构,包括大小,最后修改和创建日期。在我开始清理之前,它将作为快照。

我无法真正用Bash编程,但我希望可以要求这样的脚本。

BTW:我不能使用tree,因为NAS不能使用某些专有版本的Linux。

2 个答案:

答案 0 :(得分:2)

列出“当前工作目录”(PWD=".")下的所有文件很简单:

find . -type f -print0 | xargs -0 -I '{}' ls -la -- '{}'

编辑:

一个脚本作为您需要的示例:

#!/bin/sh --
if [ "$1" ] ; then
    SearchDir="$1"
fi

find ${SearchDir:=\./} \( ! -regex '.*/\..*' \) -type f |
while IFS= read -r file; do
    a="$(stat -c "%X" "$file")"
    b="$(date --date='@'"$a" "+%D")"
    c="$(stat -c "%Y" "$file")"
    d="$(date --date='@'"$c" "+%D")"
    printf "%10s %10s -- %s\n" "$b" "$d" "$file|"
done

答案 1 :(得分:0)

我知道,这不是OP要求的,但是在Synology NAS上安装IPKG并不是什么大事。

一旦完成,您可能会做

ipkg install tree

或使用ncdu,它提供了可浏览的树(不包括日期,但包括大小和计数),您可以通过gzip通过管道将其离线使用:

ncdu -x1o- | gzip > output.gz