Попробовать sudo -K
удалить метку времени. Также взгляните на каталог меток времени (/var/run/sudo в debian системах), возможно, что-то пошло не так, как надо там.
tar
одна из тех древних команд со дней, когда синтаксис опции не был стандартизирован. Поскольку все полезные вызовы tar
потребуйте определения операции прежде, чем обеспечить любое имя файла, большинство tar
реализации интерпретируют свой первый аргумент как опцию, даже если он не начинается с a -
. Актуальнейшие реализации принимают a -
; единственным исключением, о котором я знаю, является Minix.
Более старые версии POSIX и Единственного Unix включали a tar
команда без -
перед операционным спецификатором. Единственный Unix v2 имел оба традиционных archivers cpio
и tar
, но очень немного флагов могли быть стандартизированы, потому что существующие реализации слишком отличались, таким образом, стандарты представили новую команду, pax
, который является единственным стандартом archiver в начиная с Единственного Unix v3. Если Вы хотите стандартное соответствие, использовать pax
, но остерегайтесь этого, много дистрибутивов Linux не включают его в свою основную установку, и существует нет pax
в Minix. Если Вы хотите мобильность на практике, использовать tar cf filename.tar
.
Я могу быть динозавром, но я думаю, что обычно использование "cvf" вместо "-cvf" является, вероятно, более портативным. Я предполагаю, что большинство дистрибутивов Linux использует tar GNU, и я предположил бы, что *BSDs делают также, но Вы найдете собственные Unixes, которые все еще используют старый tar SysV, который раньше требовал, чтобы Вы не использовали '-' в опциях.
Я не использую "-cvf" (или "-xf" или безотносительно), и я не испытываю затруднений даже из-за новейшего Arch Linux.
И так же, как примечание стороны, я думаю, что можно использовать стандартные Sun опции команды "банки" с или без '-' также.
FWIW, я всегда использовал следующее:
tar -cpf - <source path> | ssh user@destserver "cd /; tar xf -"
Суть этого метода в том, что он будет поддерживать права доступа к файлам/папкам между машинами (при условии, что на обоих компьютерах существуют одни и те же пользователи/группы) (Также обычно я делаю это для копирования образов виртуальных дисков, так как для обработки разреженных файлов я могу использовать параметр -S.)
Просто протестировал это между двумя занятыми серверами и управляемыми ~ 14 ГБ в 216. (около 64MB/s) - может быть лучше между выделенными машинами и/или сжатием... YMMV
$ date; tar -cpf - Installers | ssh elvis "cd /home/elvis/tst; tar xf -"; date
Wed Sep 9 15:23:37 EDT 2015
Wed Sep 9 15:27:13 EDT 2015
$ du -s Installers
14211072 Installers
-121--3172- Попробуйте:
cd /home/aryan
tar cfvz /dev/stdout . |
ssh root@remoteserver 'cat > file.tar.gz && tar zxvf file.tar.gz'
Вам просто нужно немного адаптировать его
/dev/stdout
можно заменить на -
.
Основным способом создания сжатых файлов с использованием tar является tar opts file.ext dir/
. Здесь мы явно заменяем целевое имя файла на STDOUT
, чтобы иметь возможность передавать его через ssh.
В UNIX было несколько программ, которые не соответствуют текущему стандарту опций.
Один из них - dd
, но dd был получен из мейнфрейма IBM DDR
(Disk Dump and Restore).
Один из них - ar
, а другой - tar
. По моей информации, смола хотела быть похожей на ар.
Все реализации смол работают без - и никакая полезная реализация не требует -. Поэтому, если вы хотите писать переносные сценарии, проверьте стандарт SUSv2 и используйте только командную строку, совместимую с SUSv2.
pax
, это обычно идет с худшей известной реализацией мира (мир GNU), которого нужно избежать из-за многих ошибок. – schily 09.09.2015, 23:28ps
команда имеет то же поведение, можно опустить-
для опций. – perror 09.09.2015, 23:37ps
не позволяйте Вам опустить-
. Версия Linux имеет опции с и без-
, но большинство имеет различные значения (BSD по сравнению с совместимостью System V). – Gilles 'SO- stop being evil' 09.09.2015, 23:45ps aux
... Так, я мог бы быть (частично) неправым.Прошу прощения. – perror 09.09.2015, 23:47