2016-11-04 4 views
-1

大量のファイルのチェックサムを作成するために2つのスクリプトを作成しましたが、そのうちの1つでは、特定のディレクトリのファイルを検索するのに 'find'コマンドを使用します。ファイルには空白文字 'file one.txt'という名前が付いています。このファイルには、ファイルファイルの1つがあります。というエラーが 'find'コマンドラインにありますが、私が間違っていることを知りません。シェルスクリプトは名前にスペースを含むファイルを見つけません

マイスクリプト:高度で

#!/bin/bash 

find $1 -type f -exec bash ./task2.sh "{}" \; 

ありがとう!

+1

を...' –

+0

私はそれを試してみましたが、 "find:検索できません。":このようなファイルやディレクトリはありません。 –

答えて

2

名前にスペースが含まれているファイルを検索するには、引数を引用符で囲むか、スペースをエスケープする必要があります。類似:

find "test file.txt"または代替としてfind test\ file.txt

あなたの特定の使用の場合、最も簡単な修正が引用符で$1囲むことである: `-exec bashのfは "$ 1" 型を見つけるのですか

find "$1" -type f -exec bash ./task2.sh "{}" \;

+0

私はそれを行いましたが、うまくいきませんでした。出力は "find:検索できません。":そのようなファイルやディレクトリはありません " –

+0

@DouglasDiasdaSilva try '$ 1'の内容をエコーし​​ます。このエラーはスペースを含む名前とは関係ありません。 –

+0

変数$ 1はパラメータを受け取ります。この場合は、チェックサムを実行するディレクトリのパスを設定するか、bashファイルを特定のディレクトリに移動して、パラメータなしでこれを実行します。彼がいる場所に自動的にパスを取る... –

関連する問題