В дополнение к ответу @Lekensteyn, я бы хотел добавить, что это поведение основано на том, чтобы сделать что-то одно и сделать это хорошо. tar программа знает, как поместить несколько файлов в один поток (с помощью ), gzip знает, как сжать один файл (добавив расширение .gz) *. Комбинируя эти инструменты, вы можете создать команду, которая сжимает несколько файлов в один файл .tag.gz.
Этот подход очень гибкий - вы можете комбинировать несколько стандартных команд Unix, чтобы делать всевозможные вещи. Например, если вы пишете лучшую программу для сжатия файлов, вам не нужно изменять tar, чтобы позволить ей создавать файлы .tar.mymegazip - вместо этого вы просто выгружаете tar в ваш компрессор. [!d2 ]
Точно так же tar ничего не знает о SSH, но, комбинируя команды, вы можете создать скрипт, который архивирует файлы, загружает их на удаленный компьютер через SSH и не архивирует их там.
Сравнить это команда zip, которая не появилась в Unix, - она имеет встроенные инструменты для сжатия целых каталогов, шифрования файлов, разделения архива на меньшие zip-файлы и т. д.
(footnote) - да, tar может самостоятельно использовать файлы gzip или bzip с помощью переключателей -z и -j, они были добавлены для удобства, а GNU tar фактически порождает gzip или bzip2 в качестве нового процесса .
Для редактирования файла необходимы права суперпользователя.
Чтобы стать суперпользователем, введите sudo -s и введите свой пароль. После входа в систему попробуйте выполнить свою команду, и она будет работать.
sudo bash -c "echo 'text' >> /etc/bashrc"
Не меняйте владельца. Не хмод. Просто используйте sudo. Откройте это с помощью sudoedit, если вам нужно делать сложные вещи.
Кстати, вы можете вносить изменения для одного пользователя, просто редактируя ~ / .bashrc, не требуя специальных разрешений.
Вы, вероятно, уже обнаружили, что есть много способов сделать это. Но я думаю, что это самый изящный из всех.
echo "my edit" | sudo tee -a /etc/bash.bashrc
См. [F4], если вас интересуют технические детали того, как это работает.
В общем:
Чтобы выполнить работу echo some-text > some-file как root, запустите:echo some-text | sudo tee some-file
Чтобы выполнить работу echo some-text >> some-file как root, запустите: echo some-text | sudo tee -a some-file
[ ! d4] sudo -s
Теперь вы супер администратора, выполните свою команду.