同じ名前のファイルを含む2つのディレクトリがあります。デフォルトでは、作成日が最新の場合はdir1/file.txtをdir2/file.txtに置き換えたいと思います。しかし、ifの条件で何かが欠けていると思います。
#!/bin/bash
for i in /dir1/*; do
nameFIRR=$(basename "$i")
dateINPUT="$(date -r $i)"
dateOUTPUT="$(date -r /dir2/$nameFIRR)"
if [ $dateINPUT -ge $dateOUTPUT ];
then
cp -u $i /dir2/$nameFIRR
fi
done
答え1
2つの一般的な解決策があります。
rsync
1つは次のとおりです。
rsync
man rsync
詳細は、多数のオプションを含む強力なツールです。しかし、簡単にまとめると、コマンドは次のようになります。
rsync [オプション] ソースターゲット
あなたの場合は、次のようにします。
#!/bin/bash
rsync -t dir1/file.txt dir2/file.txt
- オプションの「コピー」(
cp
)コマンドは-u
別のコマンドです(Stephen Kittのコメントに基づいています)。
#!/bin/bash
cp -u dir1/file.txt dir2/file.txt