использование команды cp для копирования одного набора файлов в другой набор (с теми же именами) без перезаписи и с переименованием - PullRequest
0 голосов
/ 13 декабря 2011

Скажем, у меня есть куча файлов в папке A:

1.txt
2.txt
3.txt
...

И куча файлов в папке B с одинаковыми именами.

Я хочу переместить все файлыиз папки B в папку A, не теряя никаких файлов.Это означает, что некоторые файлы необходимо переименовать.Например, в 1cp.txt, 2cp.txt, 3cp.txt, ...

Насколько я понимаю, использование

cp folderB/*.txt folderA/

перезапишет все файлы в папке A. Тогда как, еслиЯ использую флаг -n, это означает, что ничего не будет скопировано, потому что -n предотвращает перезапись.

Кто-нибудь знает, как я могу выполнить эту процедуру копирования и переименования, чтобы все файлы из обеих папок были сохранены?

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Вы можете использовать -b (резервное копирование каждого существующего файла). --backup принимает аргументы для управления поведением. В противном случае вы можете создать немного больше строк и проверить свои файлы в более сложном сценарии.

0 голосов
/ 13 декабря 2011

Сначала вы можете переименовать его.

$ rename -n 's/\d{5}(\d{3})\.JPG$/BeachPics_$1\.jpg/' *.JPG
00000123.JPG renamed as BeachPics_123.jpg
00000124.JPG renamed as BeachPics_124.jpg
00000125.JPG renamed as BeachPics_125.jpg

, а затем скопировать его.

cp folderB/*.txt folderA/
...