自動的にファイルをコピー

自動的にファイルをコピー

過去24時間のドキュメントのすべてのファイルを1つのファイルにコピーしたいと思います。次に、文書のパスになるファイルの各行を選択し、別のディレクトリにコピーしたいと思います。ところで質問があります。

コピーされたファイル内の文書のパスと名前は次のとおりです。

find ./Documents -mtime -1 -type f > ./Documents/renc.txt

これはうまくいきます。

過去24時間にこのファイルで作成または変更されたすべての文書とそのパスを取得します。

ただし、ファイルをコピーできるように値 "b"を指定したい場合は、それを行うことはできません。

b= `sed -n "3p" ~/Documents/renc.txt`

bash: ~/Documents/test.odt: No such file or directory

わからない場合は、私が望むのは〜/Documents/test.odtからrenc.txtファイルを取得し、値 "b"を取得することです。その後、別のコマンドラインがあります。

cp $b ~/Others

もちろん、その後は複数のドキュメントになるので、ファイルの各行を取得するループを追加します。

ご協力ありがとうございました、

人主

ベストアンサー1

実際に尋ねることが、「バックアップのために毎日別のディレクトリに文書をコピーするにはどうすればよいですか?」なら、を使用できますrsync。このツールはソースツリー内のすべてのファイルを考慮しますが、ソースの最新のファイルのみをコピーします。ツリー文書:

rsync -av Documents/ /path/to/backupDocuments/

「毎日バックアップするために自分の文書をリモートサーバーにコピーするには?」と尋ねる場合は、rsyncrun overを使用できますssh。このバージョンは必要な部分だけをコピーします。部分ソースツリーの最新ファイル数:

rsync -av Documents/ remoteuser@remotehost:backupDocuments/

実際に過去24時間以内に作成または変更された文書のみを見つけて特定の場所にコピーしたい場合(正確に24時間ごとにスクリプトを実行しないと、それより古いファイルはスキップできることに注意してください)、そうであればこれは役に立ちます。です。/tmp/copied_files.list途中でファイルのリストが作成されます。

find Documents -depth -mtime -1 fprint /tmp/copied_files.list -print0 |
    pax -0 -d -rw /path/to/backupDocuments/

rsyncすべてを考慮した場合、これがより良い選択であることをお勧めします。

おすすめ記事