一个 unix 命令中的多个 unix glob
Multiple unix globs in one unix command
假设我在一个文件夹中有 3 个文本文件,one.txt
、two.txt
和 three.txt
。我想将它们全部更改为降价文件。愚蠢的方法是...
mv one.txt one.md
mv two.txt two.md
mv three.txt three.md
我想要执行此操作的方式类似于 mv *.txt *.md
,但它不起作用。很明显,球体(*
's)没有像我认为的那样工作。所以我想我想做的是...
mv *.txt CAPTURED_GLOB_ITERANT.md
感谢任何帮助!
shell 不会以允许执行您想要的方式捕获模式,并且 mv
本身也不会这样做。所以,使用 mv
你仍然需要一个循环:
for f in *.txt; do mv -- "$f" "${f%.txt}.md"; done
如果你想用一个命令做到这一点,你需要一个专门的实用程序,例如 rename
:
rename 's/\.txt\z/.md/' *.txt
假设我在一个文件夹中有 3 个文本文件,one.txt
、two.txt
和 three.txt
。我想将它们全部更改为降价文件。愚蠢的方法是...
mv one.txt one.md
mv two.txt two.md
mv three.txt three.md
我想要执行此操作的方式类似于 mv *.txt *.md
,但它不起作用。很明显,球体(*
's)没有像我认为的那样工作。所以我想我想做的是...
mv *.txt CAPTURED_GLOB_ITERANT.md
感谢任何帮助!
shell 不会以允许执行您想要的方式捕获模式,并且 mv
本身也不会这样做。所以,使用 mv
你仍然需要一个循环:
for f in *.txt; do mv -- "$f" "${f%.txt}.md"; done
如果你想用一个命令做到这一点,你需要一个专门的实用程序,例如 rename
:
rename 's/\.txt\z/.md/' *.txt