1

シェル スクリプト ファイル内に、スクリプトの実行後にディレクトリに展開するテキスト ファイルをいくつか用意したいと考えています。私は次のような「here-doc」ソリューションでうまくやっています。

cat>myTextFile.txt<<'EOF'
My Content
EOF

しかし、シェル スクリプトが大きくなり、解凍するファイルがますます必要になり始めています。基本的に、私は計算パイプラインを作成しており、それを単一のシェル スクリプトとして配布したいと考えていますが、一度実行すると複数のディレクトリ/サブディレクトリ/ファイルに展開する必要があります。

ありがとう!

4

3 に答える 3

3

tar アーカイブを作成し、それをバイナリ ペイロードとしてスクリプトに追加するのはどうでしょうか。非常に優れたチュートリアルがここにあります: http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts

その他のオプションには、すべての作業を自動的に行うmakeselfなどのスクリプトが含まれており、ビルドの自動化が容易になります。

于 2013-05-09T18:54:18.677 に答える
2

uuencode された tar ファイルをスクリプトに埋め込み、次のように展開できます。

tar xf - <<EOF
The uuencoded tarball
EOF

この方法でデータをエンコードできます。

$ tar cf - src_tree | compress | uuencode src_tree.tar.Z >your_here_doc

your_here_doc次に、行が現在ある場所にファイルを貼り付けます。次の'The uuencoded tarball'ようになります。

$ (echo tar cf - '<<EOF'; cat your_here_doc; echo EOF) >self_expanding_files.sh
于 2013-05-09T18:54:43.710 に答える
0

findcpコマンドを組み合わせて使用​​できますか? このようなもの

find /path/to/your/files -exec cp {} /destination/path \;

于 2013-05-09T18:51:11.897 に答える