【Bash】ディレクトリの移動

TL;DR

うまいこと言おうとして適当に肉付けしたら記事全体が破綻してたので、結論からぶっちゃけると、 サブシェルとか使うとなんかプロっぽく見えてちょっといいねと思っただけです。

( shopt -s dotglob; mv /tmp/wordpress/* ${dest_dir}/public_html; )

前提

  • プレーンなCentOS
  • プレーンなBash

NG

下記の挙動が要求・許容される場合はほぼないだろう

  • ${dest_dir}/public_html が存在する場合: wordpressディレクトリがhtmlディレクトリとして移動
  • そうでない場合: ${dest_dir}/public_html/wordpress として移動される
mv /tmp/wordpress ${dest_dir}/public_html

NG?

だいたい大丈夫だけど、移動元にドットファイルが含まれる場合はNG。 Bashのグロブはデフォルトだとドットファイルにマッチしないのです。

mkdir -p ${dest_dir}/public_html
mv /tmp/wordpress/* ${dest_dir}/public_html
$ shopt | grep dotglob
dotglob         off
$ echo * | egrep -o "\..*"
(からっぽ)
$ shopt -s dotglob

$ echo * | egrep -o "\..*"
.bash_history .bash_profile .ssh ...

OK

Bashのオプションを変えて、グロブがドットファイルにマッチするようにしまそ。

shopt -s dotglob

mkdir -p ${dest_dir}/public_html
mv /tmp/wordpress/* ${dest_dir}/public_html

シェルスクリプト内でちょろっと仕込みたいが予期せぬ副作用が怖い場合は、サブシェルでやればいいんでは?

( shopt -s dotglob; mv /tmp/wordpress/* ${dest_dir}/public_html; )

AWSを利用した導入事例のご紹介

実際に構築を行ったAWSの事例を紹介しています。導入の目的に近い事例をご覧いただくと、実際の構成例やメリット、注意点などが把握できます。

ブックオフコーポレーション株式会社様
第一生命保険株式会社様
株式会社電通様
株式会社LIFULL様
株式会社リブセンス様
TBSアナウンス部様
明治大学様
拓殖大学様