對於bash,我很新,所以很遺憾,如果這是一個基本問題。我試圖重命名一堆mp3文件,以便將它們的文件名加上1-
,並且mv *.mp3 1-*.mp3
不起作用。所以我試圖腳本它,先用回聲測試的命令:Glob在bash中重命名
for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done
這似乎輸出我喜歡的命令,所以我刪除了回聲,改變了命令
for f in *.mp3 ; do mv \'$f\' \'1-$f\'; done
哪失敗。接下來,我試圖管道命令以後,像這樣
for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done | /bin/sh
其中的工作,但如果有人可以賜教,爲什麼中間命令不工作,我很想知道。或者,如果有一種更加優雅的單行程可以做我想做的事情,我也會很有興趣看到這一點。
我打算包括單引號,因爲否則我需要用反斜槓將所有空格轉義。 MV不介意報價。然而,這些文件名也可以包含「in」(和「就此而言) – wim 2011-05-04 12:09:40
當你在'$ f'周圍使用雙引號時,你不需要轉義空格,如果文件名包含單雙引號 – bmk 2011-05-04 12:28:59