過去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/
「毎日バックアップするために自分の文書をリモートサーバーにコピーするには?」と尋ねる場合は、rsync
run 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
すべてを考慮した場合、これがより良い選択であることをお勧めします。