0

リモートマシンでユーザーbobとしてgitディレクトリを複製しました(ローカルキーを転送した後)。レポを複製すると、レポは正常に表示され、.git フォルダーを含むすべてが表示されます。

ここで、このフォルダーをフォルダーへのリンクである別の場所にコピーしたいと思います。を実行するcp -r /tmp/tmp.kk3a8xemvr/* /home/staging/myappと、すべてがコピーされますが、.git フォルダーはコピーされません。コマンドで.git フォルダーを明示的に呼び出すと、cpコピーされます。また、.gitignore もコピーされていないことに気付きました。

もう 1 つの奇妙な動作は、.git フォルダーに移動して .git フォルダー/home/staging/myappを実行するrm -rf ./*と、具体的に呼び出さない限り削除されないことです。

単純な UNIX コマンドが .git ディレクトリに対して異なる動作をするのはなぜですか? その権限について特別なことは何もありません。ファイルの前のピリオドが問題を引き起こしている可能性はありますか?

drwxr-xr-x 8 staging staging 4096 Oct 12 03:42 .git/

私のOSはUbuntu 12.04 LTSです。

 Linux myapp 3.2.0-54-virtual #82-Ubuntu SMP Tue Sep 10 20:31:18 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

編集 ジョナサンに詳細情報を提供してください: 以下のコマンドと一致するようにフォルダー名を更新しました:

# cd /tmp/tmp.kk3a8xemvr <- source, everything is good here.
root@myapp1:/tmp/tmp.kk3a8xemvr; ls -la
total 48
drwx------  9 bob bob 4096 Oct 13 03:08 .
drwxrwxrwt  7 root    root    4096 Oct 13 14:55 ..
drwxrwxr-x  3 bob bob 4096 Oct 13 03:08 ansible
drwxrwxr-x  4 bob bob 4096 Oct 13 03:08 backend
drwxrwxr-x  3 bob bob 4096 Oct 13 03:08 clientdb
drwxrwxr-x 15 bob bob 4096 Oct 13 03:08 dapi
drwxrwxr-x  3 bob bob 4096 Oct 13 03:08 docs
drwxrwxr-x  3 bob bob 4096 Oct 13 03:08 fabfile
drwxrwxr-x  8 bob bob 4096 Oct 13 03:08 .git
-rw-rw-r--  1 bob bob   44 Oct 13 03:08 .gitignore
-rw-rw-r--  1 bob bob   68 Oct 13 03:08 README.md
-rw-rw-r--  1 bob bob  450 Oct 13 03:08 requirements.txt

# cd /home/staging; ls  
lrwxrwxrwx 1 staging staging   62 Oct 13 03:06 myapp -> /srv/www/staging.myapp.com/public_html/myapp/

# command I use:
sudo cp -r /tmp/tmp.kk3a8xemvr/* /home/staging/myapp

# cd /home/staging/myapp; ls -la; # <- this is the intended destination; 
# .git and .gitignore are missing after applying the cp command.
drwxr-xr-x  9 staging staging 4096 Oct 13 14:59 .
drwxr-xr-x  3 staging staging 4096 Oct 13 03:06 ..
drwxr-xr-x  3 staging staging 4096 Oct 13 03:08 ansible
drwxr-xr-x  4 staging staging 4096 Oct 13 03:08 backend
drwxrwxr-x  2 staging staging 4096 Oct 13 14:59 clientdb
drwxr-xr-x 15 staging staging 4096 Oct 13 03:09 dapi
drwxr-xr-x  3 staging staging 4096 Oct 13 03:08 docs
drwxr-xr-x  3 staging staging 4096 Oct 13 03:08 fabfile
-rw-r--r--  1 staging staging   68 Oct 13 03:08 README.md
-rw-r--r--  1 staging staging  450 Oct 13 03:08 requirements.txt
4

1 に答える 1

2

もしあなたがそうするなら:

sudo cp -r /tmp/tmp.kk3a8xemvr/* /home/staging/myapp

シェルは、*「で始まらないすべてのファイルまたはディレクトリ名」に展開します.(したがって、を省略し.gitます)。

もしあなたがそうするなら:

sudo cp -r /tmp/tmp.kk3a8xemvr /home/staging/myapp

tmp.kk3a8xemvrで作成されたサブディレクトリを取得しますが/home/staging/myapp、これはあなたが望むものではないと思います。

ただし、次の場合:

sudo cp -r /tmp/tmp.kk3a8xemvr/. /home/staging/myapp

必要な場所にすべてがコピーされていることがわかるはずです。

于 2013-10-13T15:30:42.647 に答える