我基本上想要做的是获取目录中的所有文件并在同一目录中复制它们,从而使目录大小加倍。
然而,当我尝试使用 cp 时,它一直告诉我它们是同一个文件,这就是重点。
有没有办法像 Windows 那样在复制它们的同时将它们重命名为 (1)、(2) 等?
答案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