Linux cp с полными путями

Как скопировать файл в каталог с полным путем к файлу назначения?

Когда я использую:

cp --parents /etc/passwd /tmp

я получаю сообщение об ошибке

cp: illegal option -- - usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file target_file cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file ... target_directory

И если я использую этот скрипт

for line in "`cat fromDirs.txt`"; do find "$line" -type f \( -name '*good*' -o -exec grep -F "(NODES_'TASK')" {} \; \) -exec cp {} /tmp/ \;; done

возможно, есть возможность объединить переменные, например

-exec cp $line{} /tmp/ \;; done
or
-exec cp {} /tmp/$line \;; done

???


person Dmitrij Holkin    schedule 13.09.2014    source источник
comment
Первая команда (cp --parents /etc/passwd /tmp) у меня работает нормально. Какую реализацию/версию cp вы используете?   -  person 5gon12eder    schedule 13.09.2014
comment
Я не знаю! как это проверить?   -  person Dmitrij Holkin    schedule 13.09.2014
comment
Попробуйте cp --version или посмотрите man cp. Мой cp (GNU coreutils) 8.22.   -  person 5gon12eder    schedule 13.09.2014
comment
cp --version cp: illegal option -- - usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file target_file cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file ... target_directory man cp CP(1) FreeBSD General Commands Manual CP(1)   -  person Dmitrij Holkin    schedule 13.09.2014
comment
Ну, по крайней мере, это не GNU. Вам нужно будет найти руководство для вашей версии cp. Судя по всему, ваш не приемлет никаких длинных опционов.   -  person 5gon12eder    schedule 13.09.2014


Ответы (1)


Проблема в том, что ваша версия cp не принимает длинные параметры. Когда он видит --parents, он думает, что вы пытаетесь использовать опцию - (а также опции p, a, r и т. д.).

Вы можете эмулировать это следующим образом:

source=/etc/passwd
mkdir -p /tmp/$(dirname $source)
cp $source /tmp/$source
person John Zwinck    schedule 13.09.2014
comment
Хорошо, что я могу сделать в этом месте? Как тогда конкатенировать? и как изменить мой сценарий, чтобы он выглядел так, как вы говорите? - person Dmitrij Holkin; 13.09.2014
comment
@DmitrijHolkin: я отредактировал свой ответ, добавив код, который вы можете попробовать. - person John Zwinck; 13.09.2014