Я написал короткий CSH скрипт, который читает файл, который содержит пути к файлам, которые будут скопированы, а затем копирует эти файлы в каталог:Интересные вопросы, связанные к тому, как «сП --parents» работает
1 #!/bin/csh
2 #
3 # This script copies source and executable files modified to solve issues
4 # brought up by Veracode.
5 #
6
7 set tempdir = '~/updatedfiles2'
8
9 foreach line ("`cat modifiedFiles`")
*************here is the cp line**************
10 `cp -a $line $tempdir`
**********************************************
11 end
Что раньше работало нормально. С тех пор я решил, что хочу сохранить пути к этим файлам в виде дерева каталогов в том же каталоге tempdir
, потому что происходят коллизии, когда файлы с разными путями имеют одинаковые имена. (т.е. /vobs/emv/integratedClient/jniWrapper/OEMIMAKEFILE
и /vobs/mv_components/utilities/general/OEMIMAKEFILE
)
Таким образом, я пытался использовать опцию --parents
, например, так:
1 #!/bin/csh
2 #
3 # This script copies source and executable files modified to solve issues
4 # brought up by Veracode.
5 #
6
7 set tempdir = '~/updatedfiles2'
8
9 foreach line ("`cat modifiedFiles`")
*************here is the cp line**************
10 `cp -a --parents $line $tempdir`
**********************************************
11 end
Когда я проверить это, он начинает пытаться скопировать полноту моей системы, начиная с корневой каталог, который не является тем эффектом, который я хочу. Я просто пытаюсь скопировать определенные файлы, сохраняя их структуру каталогов при их копировании.
Я нашел несколько объяснений --parents
, но ни один не описывает ничего подобного тому, что я вижу. Это потому, что я использую --parents
неправильно? Это мой входной файл? Я не уверен.
Содержание modifiedFiles
(это значение tempdir
) выглядит следующим образом:
...
4 /vobs/emv/C_API/APIPrivate.cpp
5 /vobs/mv_components/utilities/class/Array.c
6 /vobs/mv_components/utilities/class/String1.c
7 /vobs/mv_components/export_functions/code/write_nastran_ortho3_none.c
...
/vobs
является корневой каталог, так что это может быть что-то осуществление с --parents
. Кто-нибудь слышал о неограниченном рекурсивном копировании, несмотря на определенные пути к файлам и аргумент -r
? Я недопонимаю --parents
?