コマンドライン引数を使用したコマンドのコピー

コマンドライン引数を使用したコマンドのコピー

私はキーワードを使用する簡単なスクリプトを書いています。次に、ディレクトリでそのキーワードを含むファイルを見つけて、別のディレクトリ(ディレクトリ名=キーワード)にコピーします。

このキーワードはコマンドライン引数として渡されます。これは私のスクリプトです。

#!/bin/bash
# start

mkdir $1
cp `grep -Ril \"$1\"` $1

cp私のコマンドにエラーがあるようです。

missing destination file operand

このエラーをどのように修正できますか?

ありがとうございます!

ベストアンサー1

Mikeの答えに対する解決策はほとんど正確ですが、grepが何かを見つけたときにのみディレクトリを作成するように少し変更することで、空のディレクトリを防ぎます。

#!/bin/bash
filenames=$(grep -Ril "$1")
[ $? -eq 0 ] && mkdir "$1"
for file in $filenames; do
    cp "$file" "$1"
done

おすすめ記事