2017-02-20 6 views
-1

ワイルドカードを使用して特定の接頭辞で始まるディレクトリ内のすべてのファイルをコピーしようとしています。ここにスクリプトですワイルドカードを使用したスクリプトシェル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

を試してみてください、あなたはスクリプトに正確に何を渡していますか? (サイドノート:bashは$ @ "'のように仮定して" for i "を使うことができます) – grail

+0

数字(例:70)です。ワイルドカードが動作しないようです。 – Spider

+0

今私はもっと混乱していますか?単一の値をスクリプトに渡すので、なぜループが必要なのでしょうか?次に、パス/ f70が存在するかどうかを確認して、ディレクトリを自分自身に移動しますか?または、移動する必要がある名前がf70で始まるファイルまたはディレクトリがありますか?おそらく、あなたが働いているディレクトリに実際に何が入っているかのデータを提供しておけば助けになるでしょうか? – grail

答えて

0

は、私は、次の午前わからないこの

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

これは残念なことに、これは完全なコマンドを文字列として受け取ります。 – Spider

関連する問題