一个unix命令中的多个unix球体
问题描述:
因此,假设我在文件夹中有3个文本文件,one.txt
,two.txt
和three.txt
。我想将其全部更改为降价文件。装聋作哑的方法是...一个unix命令中的多个unix球体
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
这ISN”真的是一个编程问题。在运行'mv'之前,shell将命令扩展为'mv one.txt three.txt two.txt * .md'('* .md'保持未扩展,因为没有文件匹配这个模式)。 – melpomene