2017-02-20 254 views
-1

我正嘗試使用通配符複製以某個前綴開頭的目錄中的所有文件。這是我的腳本使用通配符的腳本shell mv不起作用

#!/bin/bash 

path="/home/scoubidou/recovered/" 
prefix="f" 

for i in "[email protected]" 
do 
    if [ ! -d "$path$prefix$i" ]; then 
     mkdir $path$prefix$i 
    fi 
    echo $path$prefix$i* $path$prefix$i 
    mv $path$prefix$i* $path$prefix$i 
done 

但是,這是行不通的。通配符似乎不起作用,表達式用一個字符串進行。請注意,該命令在終端中工作得很好。

+0

不知道我下面,到底什麼是你傳遞給腳本? (注意:你可以使用「for i」,因爲bash會假設'in'$ @「') – grail

+0

它是一個數字(例如70)。它看起來像通配符不起作用。 – Spider

+0

那麼現在我更困惑了?你將一個單一的值傳遞給腳本,那麼爲什麼你需要一個循環呢?然後檢查路徑/ f70是否存在,然後將目錄移動到自身中?或者是否有文件或目錄名稱以f70開頭,需要移動?如果你提供了你正在工作的目錄中的實際數據,這可能會有所幫助。 – grail

回答

0

試試這個

`mv $path$prefix$i* $path$prefix$i` 
+0

這不起作用,這似乎將完整的命令作爲一個字符串。 – Spider