Bashでは、空の中括弧はどういう意味ですか? [コピー]

Bashでは、空の中括弧はどういう意味ですか? [コピー]

私はこれらすべてを理解していますが、始まる7行目に達するとそれを失いますfind。私は理解できません-exec cp {}。私はこれがexecutingコマンドであることを理解していますが、括弧が何をしているのかcopyわかりません。特に括弧が空の場合はさらにそうです。{}

この内容は、私が読んでいる本から抜粋したものです。

# This script prompts to backup files and location
# The files will search on $HOME dir and will only backup files to same $HOME dir.
read -p "Which file types would you like to backup? >>: " file_suffix
read -p "Which directory would you like to backup to? >>: " dir_name
# creates a directory if it does not currently exist
test -d $HOME/$dir_name || mkdir -m 700 $HOME/$dir_name
# search criteria ie .sh . The -path, -prune and -o options are to exclude the back directory from the backup.
find $HOME -path $HOME/$dir_name -prune -o -name "*$file_suffix" -exec cp {} $HOME/$dir_name/ \;
exit 0

ベストアンサー1

{}特別な意味はありませんが、bash何か意味がありますfind

find . -exec stat {} ";"

現在の作業ディレクトリからアクセスできる各ファイルは、ファイルごとに1回の呼び出しで繰り返し計算されますstat

find . -exec stat {} "+"

stat複数のファイルが同時に実行されます。

{}これを引用するか、変数を使用して実際にシェル構文の一部ではないことを自分で確信できます。

find . -exec stat "{}" ";"

A="{}" find . -exec stat "$A" ";"

最初の例と同じ出力が生成されます。

おすすめ記事