我想将所有文件复制*.pdf
到*_0.pdf
我该怎么做?
答案1
答案2
和rename
(prename
):
rename -n 's/\.pdf$/_0$&/' *.pdf
\.pdf$
匹配.pdf
文件名的末尾- 在替换中,匹配项前面加上
_0
:_0$&
- 放弃
-n
实际行动
带bash
参数扩展:
for f in *.pdf; do pre="${f%.pdf}"; echo mv -- "$f" "${pre}_0.pdf"; done
pre="${f%.pdf}"
将文件名的一部分保存.pdf
为变量pre
while
mv
-ing_0.pdf
附加到$pre
:${pre}_0.pdf
放弃
echo
实际行动
例子:
% rename -n 's/\.pdf$/_0$&/' *.pdf
rename(egg.pdf, egg_0.pdf)
rename(spam.pdf, spam_0.pdf)
% for f in *.pdf; do pre="${f%.pdf}"; echo mv -- "$f" "${pre}_0.pdf"; done
mv -- egg.pdf egg_0.pdf
mv -- spam.pdf spam_0.pdf
答案3
您要重命名还是复制?
要重命名,您可以使用 emacs:
- 将父目录作为 dired 缓冲区打开
- 类型
M-x wdired-change-to-wdired-mode
- 使用
M-x query-replace
“_0.pdf”替换“.pdf” - 键入
C-x C-s
以保存缓冲区
答案4
同一目录中的简单解决方案文件
在什shell,rename
将帮助你:
rename .pdf _0.pdf *.pdf
在包含 pdf 文件的目录中执行命令。
目录内的文件递归
如果目录中有文件并且想要找到所有文件并替换:
find . -iname "*.pdf" | fgrep -v _0.pdf | xargs -n1 echo rename .pdf _0.pdf