diffとlsを使用してリモートフォルダで変更されたファイルを検出する

diffとlsを使用してリモートフォルダで変更されたファイルを検出する

読み取り権限を持つリモートディレクトリがあります。最後の繰り返し以降に変更されたファイルのリストを生成したいと思います。

私の考えはこんな感じです。

$ cp output.new output.old
$ ll > output.new
$ diff output.new output.old > list.files

アイデアは、list.files次のように、「修正タイムスタンプ」が別のファイルまたは新しいファイルの名前と相対パスのみを持つことです。

file1
files2
dir1/file3
dir2/file4

だから私はdifflsパラメータについて尋ねています。

ベストアンサー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

スクリプトを初めて実行すると、タイムスタンプファイルが存在しないため、スクリプトは何も出力しません。後続の実行時に、スクリプトは最後の実行以降に変更されたファイルをリストします。

おすすめ記事