2016-04-28 65 views
1

在Linux shell的複製期間如何將文件重命名爲將不同的字符轉換爲其他不同的字符?如何在vfat的複製過程中重命名文件

我知道你可以使用pax工具來做到這一點。

例子: pax -rw -s '/?:/_/g/ INPUTDIR OUTPUTDIR

我有以下目錄結構

- source 
    +- documentation? 
     +- file:examples 

但我想:轉換爲CL?QM

這不起作用: pax -rw -s '/?/QM/g/ -s '/:/CL/g/ INPUTDIR OUTPUTDIR

,這也不: pax -w -s '/?/QM/g/ INPUTDIR | pax -r -s '/:/CL/g/ OUTPUTDIR

+1

_maybe_您需要轉義'?'作爲_' \?'_ – rock321987

+0

對不起,但這並沒有幫助 - 嘗試之後。 – ebart

+0

除了缺少反斜槓:man pax表示可能有多個 - 但第一個成功停止進一步替換 - 因此無法完成 - 請參閱http://linux.die.net/man/1/pax –

回答

0

目錄下生成一個列表的shell命令,使單一的PAX命令替換整個名稱,使用\?

+0

好的 - 但我的想法是管道多個pax命令,以避免創建一個額外的腳本。 – ebart

+0

-s似乎是將輸入文件重命名爲輸出文件 - 對嗎?所以一個管道不會這樣做,重複這個pax也不行。 _我認爲_。可能是一個聰明的linuxer可能會在shell腳本中使用反引號或其他。 –

+0

如果我使用管道pax命令'pax -w -s'/?/ QM/g'source/| pax -s'/:/ CL/g'輸出根據需要是正確的。 **但是**它只打印在標準輸出上。 – ebart