cp: копирование файлов по типам и создание папок

stm4836248

Запускаю такую команду:
find \( -name "*.012" -o -name "*.345" \) -exec sh -c 'cp --parents -i "$@" "$0"' ~/Backup {} +
(код основан на http://unix.stackexchange.com/a/30708 и http://unixforum.org/index.php?showtopic=131915 ).
Как сделать так, чтобы она копировала и те директории, где файлов *.012 либо *.345 не встречается?

stm4836248

Да, еще забыл спросить: возможно ли добавить в эту команду переименование файлов *.012 и *.345 в понимаемый NTFS формат - то есть чтобы спецсимволы типа :, /, | заменялись на _, к примеру.

YUAL

Серв, ты понимаешь что делает этот однострочник?
Он ищет файлы попадающие под одну из двух масок и копирует их в директорию бэкап с сохранением пути, создавая при этом промежуточные директории.
Исходя из этого описания, переформулируй свой вопрос или подумай сам как тебе надо доработать свой скрипт.
P.S. однострочник - говно. Я правда не помню что значит плюс в конце строк - с телефона не очень удобно ман читать.

stm4836248

Зачем вопрос-то переформулировать, я не возьму в толк. Я не по-русски выражаюсь? Или нужно в двоичном коде вопрос высказывать?

Serab

0000000: d182 d18b 20d1 85d1 83d0 b90a

YUAL

Ещё раз для особо сообразительных.
Как сделать так, чтобы она копировала и те директории, где файлов *.012 либо *.345 не встречается?

Твой текущий скрипт сейчас НЕ КОПИРУЕТ директорий (ну только если у тебя директории не называются *.012 и *:345, а судя по контексту, это таки простые файлы).
Твой вопрос предполагает, что какие-то уже директории копируются. Ферштейн?
А теперь сформулируй ИСХОДНУЮ задачу и тебе может быть напишут нормальный скрипт.

stm4836248

Понадобилось решить еще такую задачу: массово переименовать '*.torrent.added' в '*.torrent'. Как это можно сделать? Желательно однострочником.

Dasar

find + mv

artimon


rename 's/\.added$//' *.torrent.added

stm4836248

Работает, но в подпапках не ищет. Можешь написать, чтобы в поддиректориях тоже переименовывал файлы?

YUAL

или
 rename 's/\.added$//' *.torrent.added 
+ bash extended globbing

YUAL

серв, ты уже года 3 точно на форуме задаешь подобные вопросы про линукс, в твоём прайс листе есть установка и настройка убунточки. неужели за это время нельзя освоить баш на среднем уровне? может стоит сменить род деятельности?

kotenok1710

установка и настройка убунточки.
так там же всё мышкой делается.
Оставить комментарий
Имя или ник:
Комментарий: