Как сохранить самую последнюю структуру каталогов при копировании файлов с помощью find

Я читал книгу по bash, и нашел то, что мне нужно!

typ1_files=(words/*/*1.txt)
typ2_files=(words/*/*2.txt)

for ((i=0;i<=${#typ1_files[@]};i++)); do
   awk -f corpus_vs_flexion.awk "${typ1_files[i]}" "${typ2_files[i]}"
done
1
21.05.2019, 15:06
2 ответа

Вы можете использовать sh -cв своей команде find -exec, тогда у вас будет больше контроля, например. сделать что-то подобное:

find... -exec sh -c '
    target="/u01/ABC/$(basename "$(dirname "$1")")"
    mkdir -p "$target" && cp --backup "$1" "$target"
' find-sh {} \;
1
27.01.2020, 23:30

Вы можете cdвойти в целевой каталог и запустить оттуда команду find:

cd /tmp/data; find. -type f -name "*.txt" -exec cp --parents {} /u01/ABC/ \;

Если вам нужно вернуться в исходный рабочий каталог, вы можете после этого выполнить cd -или запустить команду в подоболочке:

(cd /tmp/data; find. -type f -name "*.txt" -exec cp --parents {} /u01/ABC/ \;)
1
27.01.2020, 23:30

Теги

Похожие вопросы