У меня есть 2 вопроса. Первый предназначен для -sf
параметров, а второй - для более конкретного использования -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
удален.
Почему это происходит?
-f
обозначает силу (--force
); не для удаления!Ответы:
Прежде всего, чтобы узнать, что делают параметры команды, вы можете использовать
man command
. Итак, если вы запуститеman ln
, вы увидите:Теперь,
-s
как вы сказали, сделать ссылку символической, а не жесткой.-f
, Однако, не удалить ссылку. Он должен перезаписать файл назначения, если он существует. Проиллюстрировать:источник