cp
私は小さなスクリプトを使ってプロファイルリストを別のデバイスにコピー(使用)します。これを行う前に、最後にファイルが変更されたことをすばやく確認して、デバイスのリソースを消費する方法を知りたいです。
答え1
config
デバイスのディレクトリに対応するローカルディレクトリがあり、config
ローカルでのみ変更し、それをデバイスと同期すると仮定すると、これはrsync
同期を実行するのに最適なツールです。
ローカルディレクトリをデバイスディレクトリに同期します。
$ rsync -av config/ [email protected]:path/to/config/
config
ローカルディレクトリに存在しなくなったデバイスのファイルを削除するには、--delete
次にフラグを追加しますrsync
。
$ rsync -av --delete config/ [email protected]:path/to/config/
デバイスのディレクトリをローカルディレクトリに置き換えてバックアップconfig/
します(質問からどの方向に行きたいかは少し不明です)。[email protected]:path/to/config/
config
答え2
if ! diff -q file1 file2 > /dev/null 2>&1;
then
echo "Files are changed"
else
echo "Files not changed"
fi
答え3
一般的にdiff/cmp
問題はありませんが、ファイルが大きい場合は比較に時間がかかることがあります。より速い方法は、タイムスタンプを比較するstat
か、チェックサムを比較することです。md5sum