Извините, я, вероятно, не использую правильные термины для описания проблемы и неправильно понимаю наиболее общее использование нескольких общих команд.

У меня есть простое утверждение поиска, которое находит файлы, которые я хочу скопировать. Я хочу добавить -exec cp {} и сделать так, чтобы cp скопировал файл из исходного каталога в новый базовый каталог, но включил полный путь. Например:

  • find . -name *.txt находит /user/username/projects/source.txt
  • cp {} [now what?] копирует файл в /user/newuser/projects/source.txt

2 ответа2

0

Если вы можете быть уверены, что все подкаталоги существуют, то это интересный вариант:

cd /user/username/
find . -name \*.gz | sed 's/\.\(.*\)/.\1 ..\/newuser\1/' | xargs -n2 cp
0
rsync -rlpv --files-from=<(find ...) /user/username/projects /user/newuser

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .