2011-12-18 22 views
-1

このスクリプトはすべてのdocファイルを指定されたディレクトリに移動します....私は引数を入れても問題はありません。bashの引数

./loo -d then path where im moving the files (i.e ./loo -d the second argument where files are moving to) 

以下のようなスクリプトは、これは私が正確な問題が何であるかわからないんだけど、私のコード

#!/bin/bash 
From="/home/elg19/lone/doc" 
To="/home/elg19/documents" 

if [ $1 = -d ]; then 
cd "$From" 
for i in pdf txt doc; do 
find . -type f -name "*.${i}" -exec mv "{}" "$To" \; 
done 
fi 
+3

私はあなたの問題を理解していません。あなたは '$ 1'を知っているので、' $ 2'を使うことは本当にあなたの挑戦のようには思えません。あなたが行方不明になっていることをよりよく説明しようと思いますか? – Mat

+0

私は$ 2を使用していますが、おそらくどこかで間違いをしていますが、もしあなたが私のコードに$ 2を挿入できる場所で助けてもらえたら、私は理解してくれますね。 – thequantumtheories

+0

あなたが試したコードを投稿し、それは与えている。 – Mat

答えて

0

これはどうですか?

#!/bin/bash 

from=/home/elg19/lone/doc 
if [[ $1 = -d ]]; then 
    to=$2 
else 
    to=/home/elg19/documents 
fi 

find "$from" -type f \(-name '*.pdf' -o -name '*.txt' -o -name '*.doc' \) -exec bash -c 'dest=$1; shift; mv "[email protected]" "$dest"' _ "$to" {} + 
+0

それは私にエラーを与える見つける – thequantumtheories

+0

申し訳ありません私は最後に中括弧を配置する必要がある+を使用して、私はこれを回避するための答えを編集したことを忘れてしまった。 –

1

のですか?

空白が含まれている場合は、フルパスの周りに"を配置する必要がありますか?
./loo -d "full path with spaces" $ 1と同様に、$ 2で完全なパスを取得できます。

+0

$ 2を使うことができますが、スクリプトのどこに置くことができますか? – thequantumtheories

関連する問題