我有一个具有读取权限的远程目录。我想生成自上次迭代以来更改的文件列表。
我的想法是这样的:
$ cp output.new output.old
$ ll > output.new
$ diff output.new output.old > list.files
这个想法是list.files
只有新文件或具有不同“修改时间戳”的文件的名称和相对路径,如下所示:
file1
files2
dir1/file3
dir2/file4
所以我问的是diff
和ls
参数。
答案1
#!/bin/sh
topdir=/some/directory
stampfile="$HOME/.stamp"
if [ -f "$stampfile" ]; then
find "$topdir" -type f -newer "$stampfile"
fi
touch "$stampfile"
这个小脚本将维护一个时间戳文件,每次运行脚本时该文件都会更新。它将找到$topdir
目录中修改时间戳比 .txt 中的时间戳文件新的所有文件$stampfile
。
第一次运行该脚本时,时间戳文件不存在,因此该脚本不会输出任何内容。在后续运行中,该脚本将列出自上次运行以来修改的文件。