У меня проблемы с подстановочным знаком в наборе папок, с которым я работаю, и мне было интересно, как лучше всего скопировать эти файлы.Например, моя структура папок выглядит следующим образом:
000
001
001
medium
image1.jpg
original
image1.jpg
thumb
image1.jpg
002
medium
anotherimage2.jpg
original
anotherimage2.jpg
thumb
anotherimage2.jpg
003
medium
someimage3.jpg
original
someimage3.jpg
thumb
someimage3.jpg
002
001
medium
whome_anotherimage_00002.jpg
original
whome_anotherimage_00002.jpg
thumb
whome_anotherimage_00002.jpg
002
medium
crapnotthisagain_067.jpg
original
crapnotthisagain_067.jpg
thumb
crapnotthisagain_067.jpg
Мне нужно иметь скрипт bash / zsh или некоторую команду, которая рекурсивно перемещает изображение из исходной папки в каждом каталоге вкаталог большого пальца, перезаписывающий изображение большого пальца.
Пока что использование find
или cp
приводит меня к смешанным результатам.Я подошел ближе к
find 000/*/*/original/ -type f -name '*.jpg' -exec cp '{}' 000/*/*/thumb/ ';'
, но он копирует файлы только в последний каталог thumb
, который он находит.Есть ли лучший способ написать это?
Обновление:
Выполнение следующего:
find 000000/*/*/original/ -type f -name '*.jpg' -exec cp -t 000000/*/*/thumb/ '{}' +
выбрасывает меня на Mac
cp: illegal option -- t
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
cp: illegal option -- t
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
cp: illegal option -- t
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
cp: illegal option -- t
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
cp: illegal option -- t
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
cp: illegal option -- t
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
и в Ubuntu: (и ничего не копирует)
cp: omitting directory ‘000000/001/998/thumb/’
cp: omitting directory ‘000000/001/999/thumb/’