Created
November 21, 2016 21:43
-
-
Save loochao/a59348c314c2dfd2cc9dc776efe62cfe to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/texbin/perl | |
| use strict; | |
| use warnings; | |
| my $ROOT = "/Volumes/DATA/Dropbox/Research/Papers2/"; # dir holding data files | |
| #my $ROOT = "$ENV{HOME}/Downloads/Test/SRC"; # dir holding data files | |
| my $META = "$ENV{HOME}/Downloads/Test/DEST"; # dir holding meta files | |
| my %FILE_TO_DATE = file_hash( $ROOT ); | |
| my %META_TO_DATE = file_hash( $META ); | |
| for my $file (sort keys %FILE_TO_DATE) { | |
| my $fdate = $FILE_TO_DATE{$file}; | |
| my $mdate = $META_TO_DATE{$file}; | |
| defined $mdate and $mdate gt $fdate and next; | |
| update_meta("$ROOT/$file", "$META/$file"); | |
| } | |
| sub update_meta { | |
| my ($file, $meta) = @_; | |
| my $meta_dir = $meta; | |
| $meta_dir =~ s{/[^/]+$}{}; | |
| print "Updating: $file\n"; | |
| -d $meta_dir or system("mkdir", "-p", $meta_dir); | |
| system("touch", $meta); # YOUR UPDATE COMMAND GOES HERE | |
| } | |
| sub file_hash { | |
| my $dir = shift; | |
| # my @files = `find $dir -type f -printf '%p:%C+\n'`; | |
| my @files = `find $dir -type f -print0 | xargs -0 stat -f '%p+\n'`; | |
| for (@files) { | |
| chomp; | |
| s{^$dir/}{}; | |
| } | |
| return map { split(/:/, $_, 2) } @files; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment