2012-05-23 21 views
11

Yerel (Mac OS X) makinem için dosyaları makinemdeki bir dizinden taşımak üzere basit bir bash komut dosyası yazmaya çalışıyorum uzak bir makineye.Bash komut dosyası rsync: rsync: link_stat (blah) başarısız oldu: Böyle bir dosya veya dizin yok (2)

rsync --verbose --progress --stats --compress --rsh=ssh \ 
     --recursive --times --perms --links --delete \ 
     --exclude "*bak" --exclude "*~" \ 
     /repository/* $DEV_SERVER:$REMOTE_DIR 

$DEV_SERVER ve $REMOTE_DIR önceden tanımlanır ve onlar doğru olduğunu doğrulamak oldukça yankı onlara: Bu satır başarısız oluyor.

alıyorum hatadır: Burada dikkat etmek

rsync: link_stat /Users/myusername/mycurrentdirectory failed: No such file or directory (2) 

bu oldukça (makinenin kök olduğu /repository) tanımlanmış dizini kullanmak yerine, bu benim çalışma dizini kullanır. Buna neden olan nedir?

+2

Alıntı değişkenlerinizin edin: kaynak konumu, rsync sonuna böyle

yılında '/' belirtirseniz dizinin içi bakmak için bilir! –

cevap

23

Kontrol ,

rsync --verbose --progress --stats --compress --rsh=ssh --recursive --times --perms --links --delete --exclude "*bak" --exclude "*~" /repository/ $DEV_SERVER:$REMOTE_DIR 
+2

Siz .... sadece 2 saat saç çekmeyi bitirdiniz. Seni seviyorum. –

-2

Bu:

rsync --verbose --progress --stats --compress --rsh=ssh \ 
    --recursive --times --perms --links --delete \ 
    --exclude "*bak" --exclude "*~" \ 
    /repository/* $DEV_SERVER:$REMOTE_DIR 

aşağıdaki gibi olmalıdır:

rsync --verbose --progress --stats --compress --rsh=ssh --recursive --times --perms --links --delete --exclude "*bak" --exclude "*~" /repository/* $DEV_SERVER:$REMOTE_DIR 

Bash komut hattı farklı \ karakter olarak yorumlar, ya da belki sonra örtülü olmayan boşluk karakteri vardır. Bundan '*' Kaldır

+0

Bash, etkileşimli olmayan oturumlarda farklı şekilde nasıl işler? – jordanm

+0

superuser.com için daha uygun –

+3

Çizgiyi sürdürme-char (yani '\'), cmd-line VEYA bir komut dosyasında kullanmayla ilgili tek sorun, \ n yanında bir karakter olduğunda karakter bundan sonra. Cevabını düşürmedim, ama doğru olduğunu düşünmüyorum. Hepinize iyi şanslar. – shellter

3

Yukarıdaki rsync hatası vererek doğru çizgi wrap yorumlamak değil BASH neden olacaktır çünkü \ karakterler, satırın sonunda o sonra hiç boşluk var

İlgili konular