私は、長年使ってきたさまざまなコンピューターから古い Time Machine バックアップを照合し、各ファイルの最新の一意のバージョンのみを保存しようとしています。 を使用してこれを実現しましたがls -d 20* | while read dir; do find "$dir" -type f -links +1 -exec rm "{}" \; done
、うまくいきました (ただし、時間はかかりました)。
問題は、リンクされたディレクトリが多数あるため、それらのために重複したディレクトリが大量に存在し、ディレクトリのリンクを解除する方法に関する情報がどこにも見つからないことです。例:
iMac:ETH Mac root# stat -f "%i %N" */"HDD/Users/etolnay/.macports/opt/local/var/macports/sources/rsync.macports.org/release/ports/net/ctorrent"
21569569 2012-02-20-143022/HDD/Users/etolnay/.macports/opt/local/var/macports/sources/rsync.macports.org/release/ports/net/ctorrent
21569569 2012-03-02-054540/HDD/Users/etolnay/.macports/opt/local/var/macports/sources/rsync.macports.org/release/ports/net/ctorrent
23843405 2012-04-06-061205/HDD/Users/etolnay/.macports/opt/local/var/macports/sources/rsync.macports.org/release/ports/net/ctorrent
23843405 2012-04-13-134054/HDD/Users/etolnay/.macports/opt/local/var/macports/sources/rsync.macports.org/release/ports/net/ctorrent
上記のフォルダには2つのバージョンがあり、それぞれ2つの日付で保存されています。 と を削除し、他のものは残しておきたいです2012-02-20-143022
。2012-04-06-061205
これらのディレクトリのリンクを解除することでしかこれを行うことはできませんが、unlink
ディレクトリでは機能しません。また、gunlink
HomebrewのGNU CoreUtilsからも機能しません。https://superuser.com/a/557425/490956。
これら 2 つのディレクトリのリンクを解除し、最新のエントリのみを残すにはどうすればよいですか?