Файл Tar з датою як ім'ям?


16

Я намагаюся націлити та gzip файл із датою та часом, як ім'я:

date=$(date '+%d-%m-%Y_%H:%M:%S');    
tar -zcf "$date".tar.gz repo/bin/

Але я повертаюся:

tar (child): Cannot connect to 17-08-2017_21: resolve failed
tar: Child returned status 128
tar: Error is not recoverable: exiting now

Що саме тут відбувається і як я можу виправити?

Тар намагається підключитися до імені так, ніби це ip?


7
Стандарт ISO для дат - yyyy-mm-ddThh: mm: ss, або +%FT%Tв dateсинтаксисі 's. Окрім дати в однозначному форматі, вона непогано сортує!

@drewbenn з датою GNU, також: date --iso-8601=s(але це також додає зміщення часового поясу)
muru

2
Я б відмовив від використання колонок. Щось подібне 20170818_122314чи подібне досить легко розпізнати та / або розібрати. Колони викликають неприємності в різних ситуаціях (ви тільки що відкрили її).
Рольф

Відповіді:


31

Так. Принаймні, для дьогтю GNU документація говорить:

Якщо ім'я файлу архіву містить двокрапку ( :), то передбачається, що це файл на іншій машині. Якщо файл архіву є user@host:file, то файл використовується на хості хоста . Доступ до віддаленого хоста здійснюється за допомогою програми rsh з ім'ям користувача користувача . Якщо ім’я користувача опущено (поряд із @знаком), то буде використано ваше ім’я користувача. (Це нормальна rsh поведінка.).

Він також забезпечує обхід:

--force-local
      Archive file is local even if it has a colon.

5
Коротше вирішення: tar zcf ./"$date".tar.gz ...схоже, що специфікація провідного шляху робить смолу трактувати це як звичайний файл
muru
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.