2016-06-29 2 views
1

を上書きするには、だから私は基本的にディレクトリ常に存在するを持っています。私はこのディレクトリをシンボリックリンクに置き換えたいと思っています(これは私の展開スクリプトで行います)。のln -sと物理ディレクトリ

私はln -sf app/cache Aを試しましたが、動作しません。上書きする代わりにAの中に作成します。

$ tree 
. 
├── A 
│   └── cache -> app/cache 
└── app 
    └── cache 

3 directories, 1 file 

lnか、私は事前にAを削除しなければならないのと、それは可能ですか?

+0

あなたはMY_TARGETとpath_to_Aのために提供された値が何でありますか。 たとえば、/home/vivek/index.phpとして/webroot/home/httpd/test.com/index.phpのソフトリンクを作成するには、次のコマンドを入力します。 ln -s/webroot/home/httpd/test。 com/index.php /home/vivek/index.php ls -l – Twinkle

+0

あなたの答えはThx、更新された投稿@Twinkle – smarber

答えて

1

... RM、cpは、mvのような多くのプログラムで見つけることができますそれはすでに-fオプションを追加することによって、存在する場合は、宛先。しかし、POSIX標準は、これはCライブラリの呼び出しルーチンunlink()、約その関数で行われると言う、標準プロセスが適切な特権を持っていない限り、

path引数がディレクトリに名前を付けてはならないと言います実装ではディレクトリ上でunlink()を使用することができます。

私はunlink()がディレクトリを削除するために文書化されている、またはlnから-fフラグはディレクトリを削除するために文書化されているシステムにアクセスしていません。

あなたのソリューションは、シンボリックリンクを作成する前に、より安全になり

$ rm -rf /path/to/A 

または、

$ mv -f /path/to/A /path/to/A.orig 

のいずれかにそのためです。

-1

私は --force既存の宛先ファイルに

を削除し、-f

、彼らは非常に便利です、常にマニュアルを読むことをお勧めし[http://man7.org/linux/man-pages/man1/ln.1.html]
これはあなたの一般的なオプションですlnユーティリティを削除するように求められることがあり

+0

うまくいかなかった、私の第2文章を参照してください。 – smarber

+1

@smarber「ファイル」ではなく、「ファイルやディレクトリ」。マニュアルは、単語の選択において*非常に特殊*です。私は多くの選択肢を持っていなかった原因 – Kusalananda

+0

@Kusalanandaは、はい、私はとにかくそれを試してみました。 – smarber

関連する問題