Bashスクリプトはrsync転送結果を取得し、元のディレクトリ内のディレクトリに圧縮します。

Bashスクリプトはrsync転送結果を取得し、元のディレクトリ内のディレクトリに圧縮します。

まあ、ちょっと変だと思います。
いくつかのコマンドを含む非常に単純な小さなstage.shスクリプトがあります。

if [ "$(whoami)" == 'David' ]; then
    rsync -a --delete-excluded --exclude-from=.rsyncrc $(pwd) ~/Sites/local-testing-0/modules/
    rsync -a --delete-excluded --exclude-from=.rsyncrc $(pwd) ~/Sites/local-testing-1/modules/
    rsync -a --delete-excluded --exclude-from=.rsyncrc $(pwd) ~/Sites/local-testing-7/modules/
    rsync -a --delete-excluded --exclude-from=.rsyncrc $(pwd) ~/Sites/local-testing-2/modules/
    echo "Checked out for David"
fi

現在ログインしているユーザーによっては、状況が異なる場合があります。ソースは現在のディレクトリです($(pwd)を参照)。現在のディレクトリをインポートして圧縮フォルダ出てください。フォルダを圧縮することはいいえを意味します。タール爆弾、zip形式でなければなりません。項目がフィルタリングされたので、rsync転送の出力を取得したいと思います。名前付きパイプを使ってみました。.rsyncrctar / zip圧縮中に除外するためにこのファイルを使用することもできます。次のように読みます。

# Meta
- stage.sh
- .rsyncrc

# Repo itself
- .git
- .gitignore

# Distribution Packages
- dist/

# Other files
- */.DS_Store

したがって、圧縮中にそのファイルを除外するために使用できることをお勧めします。実際にはテストしていませんが、可能であるかどうかはわかりません。出力は、rsync/zipping プロセスから除外された ./dist/ に配置する必要があります。

ボーナスポイント出力zipファイルの名前にバージョン番号(フォルダと同じ名前のファイルの中からインポートされ、「.php」が追加されたサフィックス)がある場合。バージョン番号のある行は常に次のようになります。$this->version = '0.0.1';

ベストアンサー1

私はこのスクリプトを思い出しましたbuild.sh

foldername=$(dirname $(pwd))
projname=$(basename $(pwd))
rsync -a --exclude-from=.rsyncrc $(pwd) $TMPDIR
cd $TMPDIR
zip -rq $foldername/$projname/dist/$projname-latest.zip $projname
cd $foldername/$projname

このファイルはルートフォルダにあるので、プロジェクト全体をzipにパッケージ化したいときはいつでもそれを実行してsource build.shから距離/フォルダは商品名-最新.zip

おすすめ記事