Я использовал Ubuntu сроком на время и столкнулся с этой проблемой:
Я использую человечность 14.10 прямо сейчас и установил Пар в моем /home/user/.steam
папка. Когда я копировал .steam
папка в моем корневом каталоге и индикаторе выполнения была около конца, это говорит, что сообщение, указывающее ", Невозможно резервирование специальный файл steam.pipe", более или менее походит на это.
Я столкнулся с этой проблемой начиная с использования Ubuntu 14.04, но я знаю, что это не дистрибутив / проблема выпуска, а скорее проблема копирования файла. К счастью, я могу управлять этой проблемой при помощи команды в моем .steam
папка:
sudo cp -f ./steam.pipe /[destination]
В конечном счете, только к этому дню, я не могу скопировать этот файл с помощью команды выше. Терминал просто упорно продолжил:
Idad@IdadComp:/home/Idad/.steam$sudo cp -f ./steam.pipe /[destination]
и не отступал к
Idad@IdadComp:/home/Idad/.steam$
указание, что копия обрабатывает не сделанный.
Мой вопрос, как я мог скопировать этот steam.pipe файл?
Я попробовал:
steam.pipe
файл.Заранее спасибо за Вашу справку.:)
Вы не должны копировать его. steam.pid
и steam.pipe
файлы создаются Паром как требуется. Эти два файла должны быть исключены из резервных копий.
Как muru говорит, Вам не придется создать резервную копию steam.pipe
. Пар должен смочь воссоздать его, если это отсутствует. Однако при резервном копировании Вашего ~/.steam
папка, необходимо проверить, есть ли у Вас также a ~/.local/share/Steam
папка. Если так, Вы, вероятно, захотите создать резервную копию его также. Это обычно содержит большинство файлов, связанных с Паровой установкой, включая Ваши установленные Паровые игры.
Я записал остальную часть этого ответа в случае, если:
cp
.steam.pipe
, в случае, если действительно когда-либо необходимо делать так.Резюме - то, что необходимо использовать rsync
для Ваших резервных копий. Посмотрите ниже для получения дополнительной информации объяснения и альтернатив.
steam.pipe
Является особеннымsteam.pipe
FIFO, иначе именованный канал:
ek@Io:~/.steam$ ls -l steam.pipe
prw------- 1 ek ek 0 Mar 7 20:12 steam.pipe
ek@Io:~/.steam$ file steam.pipe
steam.pipe: fifo (named pipe)
FIFOs не являются постоянным клиентом файлы, но вместо этого являются специальными записями файловой системы, что можно взаимодействовать с тем, как будто они - файлы. Запись в FIFO хранит данные в памяти, где это остается, пока FIFO не читается из. Чтение из FIFO получает данные в порядке, который они были записаны (таким образом, это - Метод "первым пришел - первым вышел").
Существует на самом деле два отличных поведения, которые можно было бы хотеть при попытке скопировать FIFO. Какой, который Вы хотите, зависит от ситуации.
Вы попробовали две программы:
cp
считывает данные с FIFO, вместо того, чтобы делать копию самого FIFO. Если нет никаких данных в FIFO, cp
остановы до некоторого процесса пишут в него.Для дублирования FIFO можно использовать rsync
с --specials
флаг:
ek@Io:~$ cd steam-backup
ek@Io:~/steam-backup$ rsync --specials ~/.steam/steam.pipe .
ek@Io:~/steam-backup$ ls -l steam.pipe
prw------- 1 ek ek 0 Apr 22 11:43 steam.pipe
Это - то, если Вы хотите скопировать его отдельно. Для копирования целой папки в архивных целях - то есть, где Вы хотите большинство вещей быть путем, они были прежде, таким образом, он работает правильно при восстановлении - можно использовать rsync -a
:
rsync -a .steam/ steam-backup
Для получения дополнительной информации о rsync
, см., что "rsync" в Ubuntu помогает Wiki, восходящий поток rsync веб-сайт, и man rsync
(который объясняет конкретно что -a
флаг делает).
cp
хорошо подходит для простых вариантов использования, но я предлагаю rsync
для того, чтобы сделать резервные копии.
Другой способ создать резервную копию папки состоит в том, чтобы сделать архив из него с tar
, и это также автоматически сохранит FIFOs (т.е. они будут воссозданы на извлечении):
ek@Io:~$ tar cvJf steam-backup.tar .steam
.steam/
.steam/registry.vdf
.steam/sdk32
.steam/bin64
.steam/root
.steam/steam_install_agreement.txt
.steam/steam
.steam/steam.pipe
.steam/steam.pid
.steam/bin
.steam/sdk64
.steam/bin32
При пропавших без вести FIFO (или в резервном копировании, или в целом) и потребность восстановить его можно просто создать новый с mkfifo
.
Вы захотите создать его с корректными полномочиями. Выполнение ls -l
на steam.pipe
показывает маску полномочий prw-------
. p
просто средства это - именованный канал (FIFO). Остальное подразумевает, что это читаемо и перезаписываемо его владельцем и не имеет никаких других полномочий (см. FilePermissions для деталей). Восьмеричная маска полномочий таким образом 600 (или 0600), таким образом, Вы захотите передать -m 600
кому: mkfifo
:
ek@Io:~/steam-backup$ mkfifo -m 600 steam.pipe
ek@Io:~/steam-backup$ ls -l steam.pipe
prw------- 1 ek ek 0 Apr 22 12:09 steam.pipe
Это не проблема для резервных копий, но необходимо знать что, копируя FIFO (например, с rsync
) просто делает новый FIFO как он. Если будут данные в FIFO, готовом быть считанным, то данные не будут доступны в новом FIFO.
Причина это не проблема для резервных копий, состоит в том, что FIFOs не для длительного хранения. Они не действительно даже для устройства хранения данных вообще. Данные в FIFO не записаны в диск, и когда процесс пишет в FIFO, о записи даже не сообщают процессу как успешной, пока данные не были считаны. (Точно так же, если процесс будет читать из FIFO без данных в нем, то чтение остановится, пока данные не записаны.)
Вы видите это в действии и также получаете лучший смысл того, как FIFOs работают путем создания одного собственного и экспериментирования с ним. Можно создать новый FIFO foo
с полномочиями по умолчанию с mkfifo foo
, и текст перенаправления к нему с командой как echo 'Hello, world!' > foo
. Это остановится, поскольку ничто еще не прочитало текст. Затем в другом терминале (например, другая вкладка Terminal) читает текст с cat foo
и посмотрите то, что происходит в каждом терминале.