В основном я хочу взять все файлы в каталоге и скопировать их в том же каталоге, увеличив таким образом размер каталога вдвое.
Однако, когда я пытаюсь использовать cp, он продолжает говорить мне, что это один и тот же файл, в чем суть.
Есть ли способ скопировать их, переименовывая их в (1), (2) и т. Д., Как это делают Windows?
Вы можете сделать что-то подобное поведению 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
) по-прежнему требуется для переопределения поведения по умолчанию «тот же файл».