LINUX.ORG.RU

cat и cp


0

0

Просматривая скрипты инсталляции Slackware обратил внимание на большое колличество строк типа:

cat file1 > file2

Вопрос: чем подобное использование этой команды отличается от обычного использования "cp" ?


Ну скажем если file1, не обычный файл, а какой-нибудь специальный, то cp не сработает.

arax ★★
()
Ответ на: комментарий от Selecter

нет именно не "в хвост", а так. Может это быстрее работает ?

gtyrin
() автор топика
Ответ на: комментарий от arax

Какой специальный? Может заглянуть в исходняки и не мучиться?

cat лучше использовать, если надо перенаправить файловый поток, куда хочешь. cp его перенаправляет только в другой файл.

А может быть они делают это для того, чтобы без вопросов совершать копирование? В некоторых дистрах любят делать alias на команду cp с требованием подтверждения действия в случае, если файл уже существует.

Selecter ★★★★
()
Ответ на: комментарий от Selecter

cat применяется для копирования содержания файла, а cp для копирования самого файла, а это разные вещи.

arax ★★
()
Ответ на: комментарий от Selecter

>Докажи исходниками :) Где источник информации?

Думаю, исходники coreutils ты и сам посмотреть можешь. cp и cat деиствительно весьма похожи при использовании cat file1>file2 и cp file1 file2

Но немного отличаются, например

cat /dev/stdin>/dev/stdout

все работает, а теперь

cp /dev/stdin /dev/stdout

это конечно тупой пример, но наглядный

arax ★★
()
Ответ на: комментарий от Selecter

>Удивись

Чему тут удивляться, проще писать /bin/cat -f a b и никакие алиасы не страшны.

arax ★★
()

Полностью сохраняются права на второй файл, а содержимое заменяется. Сам юзаю такую конструкцию в скриптах.

Teak ★★★★★
()
Ответ на: комментарий от Teak

>Полностью сохраняются права на второй файл, а содержимое заменяется. Сам юзаю такую конструкцию в скриптах.

насколько я знаю, cp тоже сохраняет права

arax ★★
()
Ответ на: комментарий от arax

>насколько я знаю, cp тоже сохраняет права

но оказывется не все,кстати аналогично cat
например если
chmod 666 a
chmod 4666 b
cat a>b
то b станет 666

arax ★★
()
Ответ на: комментарий от arax

Действительно, суидный бит пропадает. Во блин сюрпризы.

Для меня это впрочем ничего не меняет, но неприятно.

Teak ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.