同一目录中的简单解决方案文件

同一目录中的简单解决方案文件

我想将所有文件复制*.pdf*_0.pdf

我该怎么做?

答案1

一个简单的方法是使用韓國命令:

mmv '*.pdf' '#1_0.pdf'

您可能需要先安装它(可在 Universe 存储库中找到):

sudo apt-get install mmv

答案2

renameprename):

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:

  1. 将父目录作为 dired 缓冲区打开
  2. 类型M-x wdired-change-to-wdired-mode
  3. 使用M-x query-replace“_0.pdf”替换“.pdf”
  4. 键入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

相关内容