這裏是我的代碼片段:如何使用For循環重命名目錄中的所有文件?
#!/bin/sh
for fname in *
do
if [! -d "$fname"]
then
WHAT CAN I DO
fi
done
所有新命名的文件都必須有這種格式O.fname - 正如你所看到的O. preceeded能否請你幫忙嗎?我知道我必須在某處使用mv。
這裏是我的代碼片段:如何使用For循環重命名目錄中的所有文件?
#!/bin/sh
for fname in *
do
if [! -d "$fname"]
then
WHAT CAN I DO
fi
done
所有新命名的文件都必須有這種格式O.fname - 正如你所看到的O. preceeded能否請你幫忙嗎?我知道我必須在某處使用mv。
文件是用mv改名,所以只是做
mv "$fname" "O.$fname"
的循環。
只需使用循環內的mv即可。此外,在if語句,有[
和!
for fname in *
do
if [ ! -d "$fname" ]
then
mv "$fname" "O.$fname"
fi
done
sepp2k的回答更好:'mv「$ fname」「O. $ fname」'保護文件名中的空格。 – Bolo 2010-07-06 01:00:06
沒錯。我總是忘記這一點。 – 2010-07-06 01:04:50
......和'''之前的空格(如你所示)。 – 2010-07-06 02:21:34
之間的空間u能不能只用重命名,而不是MV? – thegeek 2010-07-06 09:41:09
@thegeek:如果a)知道它已安裝,並且b)您知道安裝了哪一個,則可以使用重命名。有一個名爲rename的工具,它接受一個perl正則表達式和一個文件列表,另一個工具接受兩個字符串和一個文件列表。它們都不安裝在所有系統上。 – sepp2k 2010-07-06 10:39:08