Ubuntu Unison:複数のファイルを除くすべてのアイテムをフィルタリング

Ubuntu Unison:複数のファイルを除くすべてのアイテムをフィルタリング

同様の2台のコンピュータを同期し、いくつかのファイルだけを更新したいと思います。そのため、Unisonを実行し、別のパスにあるファイルのリストを除くすべてを無視したいと思います。

それは次のとおりです。

# /usr/bin/unison-gtk /home/ ssh://[email protected]:22//home/ -ignore "Name *" -ignorenot "Name {config/text.cfg, Pictures/test.jpg, Desktop/test.mp3"

あるいは、ルートディレクトリから始める方が良いでしょう。

# /usr/bin/unison-gtk / ssh://[email protected]:22// -ignore "Name *" -ignorenot "Name {/home/config/text.cfg, /home/Pictures/test.jpg, /usr/local/bin/test.sh"

最初の無視は、他のすべてを除いて、ignorenotがそれを捕捉するのを防ぐことです。役に立ちましたか?誰でも助けることができますか?私は私に役立つものが何も見つかりませんでした。

ベストアンサー1

-path代わりに一貫したオプションを試しましたか-ignore? ~から統合マニュアルおよびリファレンスガイド部分すべてのファイルにUnisonを使用する

Unisonに特定の実行時に一部のファイルとサブディレクトリのみを同期させるように指示します。これは、コマンドラインで-pathスイッチを使用して実行できます。 ... -path オプションは、複数のファイルまたはサブディレクトリを同期するのに必要な数だけ使用できます。

以下は簡単な実際の例です。

  • localディレクトリと作成remoteremoteこの場合、ディレクトリは実際のリモートディレクトリを置き換えます)。
root@ubuntu:~# mkdir local remote
  • ディレクトリに9つのファイルを作成しますlocal
root@ubuntu:~# for i in $(seq 9); do uuidgen > local/${i}.txt ; done
root@ubuntu:~# ls local
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt  9.txt
  • ファイルを同期するために使用されますが、同期は名前が、およびであるunisonファイルに制限されます。1.txt2.txt3.txt
root@ubuntu:~# unison -auto -batch local/ remote/ -path 1.txt -path 2.txt -path 3.txt
Contacting server...
Looking for changes
...
Reconciling changes
file     ---->            1.txt
file     ---->            2.txt
file     ---->            3.txt
...
  • remoteディレクトリにこれらのファイルのみが含まれていることを確認してください。
root@ubuntu:~# ls remote/
1.txt  2.txt  3.txt

内容が変わると、状況はさらに面白くなります。

  • ディレクトリに同じファイルを作成しますremote。これにより、同期されたファイルが更新され、同期されていないファイルの新しいファイルが作成されます。
root@ubuntu:~# for i in $(seq 9); do uuidgen > remote/${i}.txt ; done
  • unisonディレクトリを再同期するために使用されます。
root@ubuntu:~# unison -auto -batch local/ remote/ -path 1.txt -path 2.txt -path 3.txt
Contacting server...
Looking for changes
Reconciling changes
         <---- changed    1.txt
         <---- changed    2.txt
         <---- changed    3.txt
...
  • 同期されたファイル(たとえば1.txt)の内容は、両方のディレクトリで一致します。同期されていないファイル(例9.txt:)には他のコンテンツが含まれます。
root@ubuntu:~# cat {local,remote}/1.txt
7317d9ef-9747-43ae-9f4c-347fc4134e65
7317d9ef-9747-43ae-9f4c-347fc4134e65
root@ubuntu:~# cat {local,remote}/9.txt
76654fcf-d0b2-4788-8a84-b765c9a41cc3
f5db8eb3-4300-463a-9d49-fcb14afcae12

おすすめ記事