在一个命令中更改多个文件的文件扩展名

时间:2016-03-09 15:19:45

标签: bash unix command-line pipe

我正在使用二进制文件将文件类型转换为另一种文件:

./rcc -binary themes/redTheme.qrc -o redTheme.rcc

我有几个.qrc个文件,并且想要转换它们,但是在同一个命令中。如何重新组合它们重命名和他们的类型?我很难找到保留文件名的方法。

我正在考虑将rcc二进制文件绑定到pipe来执行转换.qrc文件的循环。

2 个答案:

答案 0 :(得分:1)

我希望你能用二进制文件绑定它:

ls *.qrc | xargs -I {} sh -c 'mv $1 `basename $1 .html`.rcc' - {}

答案 1 :(得分:0)

您可以使用以下内容:

  

$ for for in * .qrc;做echo mv -v $ {i} $ {i%.qrc} .new;完成

在此处查看一个示例,其中我有几个文件以qrc结尾,而我mv则为.new

$ l
total 0
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 1.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 10.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 2.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 3.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 4.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 5.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 6.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 7.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 8.qrc
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 9.qrc
$ for i in *.qrc ; do mv -v ${i} ${i%.qrc}.new ; done
1.qrc -> 1.new
10.qrc -> 10.new
2.qrc -> 2.new
3.qrc -> 3.new
4.qrc -> 4.new
5.qrc -> 5.new
6.qrc -> 6.new
7.qrc -> 7.new
8.qrc -> 8.new
9.qrc -> 9.new
$ l
total 0
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 1.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 10.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 2.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 3.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 4.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 5.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 6.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 7.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 8.new
-rw-r--r--  1 chl  wheel  0 Mar  9 16:22 9.new
$

当然,您必须使用rcc工具代替mv并使用结尾代替.new