Взгляните здесь, с помощью этого сообщения, я понял, что одна вещь, которая различает tmux
клиенты - их tty
но имена сессии tmux
свойство сервера и является тем же, когда мы смотрим на имя сессии изнутри или снаружи a tmux
клиент. Затем, мы можем использовать tmux info | head
который отображает pid и tty клиента и pid сервера.
tmux info | grep $$ | grep -q `ps -p $$ -o tty=`
Следующее возвращаемое значение команды 0, если мы внутри a tmux
клиент или не нуль, если мы работаем снаружи a tmux
клиент. При выполнении его из сценария удостоверьтесь, что Вы используете ppid вместо $$, так как tty связан с процессом оболочки не скрипт, который Вы запускаете.
Один простой способ, но менее устойчивый, чтобы знать, внутри или снаружи ли мы tmux
клиент путем рассмотрения ТЕРМИНА переменная среды. Кажется, что вне клиента это говорит, что 'xterm', но в нем говорит 'экран'. Однако я нахожу первый путь намного лучше.
Если data.txt
- единственный файл в архиве tar, вы можете добавить его напрямую, просто не используя tar
:
$ echo Hello | bzip2 > data.txt.bz2
$ echo Stack | bzip2 >> data.txt.bz2
$ echo Exchange | bzip2 >> data.txt.bz2
$ bunzip2 < data.txt.bz2
Hello
Stack
Exchange
Проверьте, установлена ли rosdep на вашем компьютере, в противном случае установите
sudo rosdep init
rosdep update
Затем попробуйте выполнить следующие действия, установив из apt-get
sudo apt-get install python-rosdep python-rosinstall python-rospkg python-empy python-nose
-121--244603- См. промо-страницу Apple для получения информации о Thunderbolt. В нем также описывается, как можно связать устройства друг с другом вместо того, чтобы нуждаться в концентраторе или подобном. У меня сложилось впечатление, что горячее подключение таких устройств с цепями - это то, что не поддерживается linux commit; только отдельные устройства, какого бы типа они ни были.
-121--105531- Вы можете добавить файлы в несжатый архив tar с помощью переключателя -добавить
, например:
$ tar --append --file=tarfile.tar data.txt
Остерегайтесь последствий добавления нескольких файлов с одинаковыми именами в существующий архив:
http://www.gnu.org/software/tar/manual/html_node/append.html
Вы не можете, насколько мне известно, добавлять или обновлять файлы в сжатом архиве без его предварительной распаковки
Я могу подумать только о архиевой утилите.
1) Установите ArchiMount
(если его еще не доступен на вашем компьютере). Это доступно в EPEL REPO.
2) Используйте команду Archivemount
, чтобы установить файл TAR на любой из каталогов на вашем компьютере.
archivemount xyz.bzip2 / path / to / a / directory /
После установки вы сможете просматривать архив, как будто это обычный каталог. Оттуда вы можете редактировать / обновить или добавлять контент в свой файл, который находится в архиве.
Здесь У вас есть более подробная информация об использовании ArchiMount
, а ниже - фрагмент от моего сервера, когда I ArchiMount
Ed BZIP2 файл.
[root@server usr]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 15G 9.0G 5.1G 64% /
none 245M 0 245M 0% /dev/shm
[root@server usr]# archivemount puppet_codes.bzip2 /usr/local/archtest/
[root@server usr]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 15G 9.0G 5.1G 64% /
none 245M 0 245M 0% /dev/shm
archivemount 1000G 0 1000G 0% /usr/local/archtest
[root@server usr]# ls /usr/local/archtest
puppet_codes
[root@server usr]# cat /usr/local/archtest/puppet_codes/emaillist.txt
sreewave@example.com
sreewave@example.org
[root@server usr]#
Ниже приведен пакет, который я установил на моем сервере.
[root@server ~]# rpm -qi archivemount-0.8.1-2.el6.x86_64
Name : archivemount Relocations: (not relocatable)
Version : 0.8.1 Vendor: Fedora Project
Release : 2.el6 Build Date: Sun Oct 13 17:06:30 2013
Install Date: Wed Dec 17 13:45:01 2014 Build Host: buildvm-04.phx2.fedoraproject.org
Group : System Environment/Libraries Source RPM: archivemount-0.8.1-2.el6.src.rpm
Size : 70774 License: LGPLv2+
Signature : RSA/8, Sun Oct 13 18:43:34 2013, Key ID 3b49df2a0608b895
Packager : Fedora Project
URL : http://www.cybernoia.de/software/archivemount/
Summary : FUSE based filesystem for mounting compressed archives
Description :
Archivemount is a piece of glue code between libarchive and FUSE. It can be
used to mount a (possibly compressed) archive (as in .tar.gz or .tar.bz2)
and use it like an ordinary filesystem.