FastNetMon

Saturday, 9 July 2011

Обновление файлов и папок рекурсивно

Итак, есть задача - имеется некая файловая иерархия, где в корневой папке имеются и файлы и папки, в которых в свою очередь имеются вложенные файлы и папки. Кроме этого, имеется аналогичная файловая иерархия, но с только новыми файлами (файлы лежат как в корне, так и во вложенных папках). Задача - нужно из второй файловой иерархии скопировать все папки/файлы и в случае их наличия в первой - переписать их. Пусть первая иерархия - folder, вторая - folderpatch.


Первая попытка была в стиле:
mv folderpatch/* folder

Но в ответ меня встретило:

mv: cannot move `test1' to `../test1': Directory not empty
mv: cannot move `test2' to `../test2': Directory not empty
mv: cannot move `test3' to `../test3': Directory not empty

То есть, пропатчить файлы внутри папок не получится никак.

Но для cp преград нету!
cp -af folderpath/* folder

После этого измененные/новые файлы из папки folderpatch заменят файлы в корне папки folder, а также файлы во вложенных папках папки folder.

Источник: http://www.cafewebmaster.com/update-overwrite-files-and-directories-recursively-linux-mv-cp-commands

3 comments :

  1. Вот 5 мин назад использовал просто
    cp -a
    В чем разница?

    ReplyDelete
  2. Ну можно вообще -R только.

    ReplyDelete

Note: only a member of this blog may post a comment.