Я иду со следующим в ударе
cp -r "/wordpress/3.0.1/" "/mySite/"
и результат /mySite/3.0.1/
но я не хочу, ни понимаю почему 3.0.1/
появляется в целевом месте назначения.
Что я делаю неправильно?
Это - отклонение от спецификации POSIX, которая указывает это
Путь, который содержит по крайней мере один символ ненаклонной черты и это заканчивается одной или несколькими запаздывающими наклонными чертами, буду разрешен, как будто единственный точечный символ ('.') был добавлен к пути.
Но в соответствии с Linux (т.е. с cp
команда от GNU coreutils, cp -r foo/ bar/
действия как cp -r foo bar/
вместо cp -r foo/. bar/
когда foo
каталог ¹. (GNU coreutils не является единственным преступником, я просто наблюдал то же поведение в OpenBSD, который обычно хорош в соответствии стандартов.)
Можно работать cp -r "/wordpress/3.0.1/." "/mySite/"
(т.е. закончите источник /.
) избегать 3.0.1/
уровень. Другая возможность rsync -r "/wordpress/3.0.1/" "/mySite/"
.
Как в стороне, я рекомендую выработать привычку cp -a
вместо cp -r
если Вы не используете нельдов кроме Linux и Cygwin. Когда Вы замечаете различие, -a
(который сохраняет полномочия, и символьные ссылки) обычно правильный. На других нельдах использовать cp -Rp
. С rsync
, использовать -a
.