質問が2つあります。 1つ目は-sf
オプション用で、2つ目は-f
オプションをより具体的に使用するためのものです。
ln
-s
インターネット検索でコマンド、オプション、およびの説明を見つけました-f
。
(からコピーhttp://linux.about.com/od/commands/l/blcmdl1_ln.htm)
-s, --symbolic : make symbolic links instead of hard links
-f, --force : remove existing destination files
私はこれらのオプションを個別に理解しています。しかし、このオプション-s
と-f
オプションを同時にどのように使用できますか?-s
リンクされたファイルを生成するために使用され、リンクされたファイルを削除するために-f
使用されます。このマージオプションを使用するのはなぜですか?
ln
コマンドの詳細を理解するために、いくつかの例を挙げました。
$ touch foo # create sample file
$ ln -s foo bar # make link to file
$ vim bar # check how link file works: foo file opened
$ ln -f bar # remove link file
次のコマンドまですべてがうまく機能します。
$ ln -s foo foobar
$ ln -f foo # remove original file
オプションの説明によると、-f
最後のコマンドは機能しないはずです。foo
削除されました。
なぜこれが起こるのですか?
ベストアンサー1
まず、コマンドオプションの機能を確認するには、を使用しますman command
。man ln
-f, --force
remove existing destination files
-s, --symbolic
make symbolic links instead of hard links
今、-s
あなたが言ったように、リンクを難しくないように象徴的にしてください。ただし、-f
リンクは削除されません。ターゲットファイルが存在する場合は、そのファイルを上書きします。表示するには:
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 bar
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 foo
$ ln -s foo bar ## fails because the target exists
ln: failed to create symbolic link ‘bar’: File exists
$ ln -sf foo bar ## Works because bar is removed and replaced with the link
$ ls -l
total 0
lrwxrwxrwx 1 terdon terdon 3 Mar 26 13:19 bar -> foo
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 foo