Как дублировать все файлы в заданной папке с автоматическим переименованием

В основном я хочу взять все файлы в каталоге и скопировать их в том же каталоге, увеличив таким образом размер каталога вдвое.

Однако, когда я пытаюсь использовать cp, он продолжает говорить мне, что это один и тот же файл, в чем суть.

Есть ли способ скопировать их, переименовывая их в (1), (2) и т. Д., Как это делают Windows?

0
задан 21 August 2020 в 23:14

1 ответ

Вы можете сделать что-то подобное поведению Windows, используя параметр - backup = numbered :

$ ls dir1
apple  banana  carrot  date  egg  fish  grape  ham

затем

$ for f in dir1/*; do cp -vf --backup=numbered "$f" "$f"; done
'dir1/apple' -> 'dir1/apple.~1~'
'dir1/banana' -> 'dir1/banana.~1~'
'dir1/carrot' -> 'dir1/carrot.~1~'
'dir1/date' -> 'dir1/date.~1~'
'dir1/egg' -> 'dir1/egg.~1~'
'dir1/fish' -> 'dir1/fish.~1~'
'dir1/grape' -> 'dir1/grape.~1~'
'dir1/ham' -> 'dir1/ham.~1~'

, давая

$ ls dir1
apple      banana.~1~  date      egg.~1~   grape      ham.~1~
apple.~1~  carrot      date.~1~  fish      grape.~1~
banana     carrot.~1~  egg       fish.~1~  ham

] Обратите внимание, что -f (или - force ) по-прежнему требуется для переопределения поведения по умолчанию «тот же файл».

0
ответ дан 24 August 2020 в 08:20

Другие вопросы по тегам:

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