Я ищу для поиска, а затем скопировать все файлы с именами файлов, совпадающими в текстовом файле из каталога (с подкаталогами) на сервере в другой каталог. Я нашел отличное решение (хотя и довольно медленное) для окон здесь.
в файле .bat что-то вроде:
for /f "delims=" %%i in (text-list.txt) do echo D|xcopy "\\SERVER\FOLDER\%%i?" "c:\temp" /i /z /y /s
Как я могу сделать это на Mac/Linux?
это работает для файлов, которые находятся в одном каталоге, но я не могу понять, как искать подкаталоги в исходной папке:
rsync --files-from ~/filelist.txt . ~/destfolder
основываясь на примере из @neofug, это Perl-скрипт для этого. он работает хорошо, за исключением того, что он не ищет в подпапках в srcfolder:
#!/usr/bin/env perl
use strict;
my $textFile = shift @ARGV;
my $filenames = {};
open F1, "<", $textFile or die "Cannot open file $textFile! $!\n";
while ( <F1> ){
chomp;
$filenames->{$_}++;
}
close(F1);
my $imgDir = "/Users/username/srcfolder";
chdir($imgDir);
my @imgList = glob "*.txt";
foreach(@imgList){
if($filenames->{$_}){
system("/bin/cp $_ /Users/username/destfolder");
}
}