human
Bash-Shellスクリプトと比較して、Posix-Shellスクリプトが優れているのはなぜですか？
gpt
どのスクリプト言語を使用すべきかという厳格なルールはなく、ほとんどが個人的な好みに至ることです。ただし、POSIXシェルスクリプトをより優先する可能性のある要因がいくつかあります。
1. POSIX（UNIX仕様用のポータブルオペレーティングシステムインターフェイス拡張）は、異なるプラットフォームでバッシュよりも多くの移植性を保証します。これは、POSIX SHに記述されたスクリプトが、変更を必要とせずに他のシステムで実行する可能性が高い可能性があることを意味します。
2. POSIXによって課される仕様によって制限された結果、これらのスクリプトはより小さく、より速く、BASHスクリプトと比較してメモリを使用する傾向があります。また、コードが少なく、よりシンプルな構文を使用してタスクを達成することもあります。
3.最後に、Bashにはより急な学習曲線がありますが、SHの基本は、その単純なコマンドセットと構造のために比較的迅速に学習できます。
human
すべてのファイルを別のフォルダーにコピーして、フォルダーの階層を平らにするPOSIXシェルスクリプトと同等のBASHスクリプトを表示してください。
gpt
すべてのファイルを新しいディレクトリにコピーすることでディレクトリを平らにすることができるPOSIXシェルスクリプトの一部を以下に示します。

「バッシュ
lc_all = c find/dir1 -path '/dir1/*/*' -type f -exec sh -c '
  execmv "$@" /dir1 'sh {} +
`` `

「バッシュ
DIR1 -TYPE F -EXEC MV {} dir1 \;
dir1 -depth -exec rmdir {} \;
`` `

「バッシュ
dir1 -type f -exec sh -c 'mv "$@" dir1' _ {} +を見つける
dir1 -depth -exec rmdir {} +を見つけます
`` `

そして、これがバッシュシェルの相当物です：

「バッシュ
find /foo -iname '*.txt' -exec cp \ {\} /dest /\;
`` `

上記のスクリプトを使用すると、すべてのファイルの新しい「CP」プロセスを分岐します。これは、特に多数のファイルがある場合、それほど効率的ではないことに注意してください。

パフォーマンスについては、別の解決策があります。

「バッシュ
探す 。-name "*.xml" -print0 |xargs -0エコーCp -t a
`` `