Здравствуйте!Нужно заархивировать файлы по абсолютному пути, но так, чтобы эти файлы оказались в корне архива.
tar -czPf /backup/bakup.tar.gz /path/to/files/*.cpp
Такая команда работает, но в архив переноситсяструктура /path/to/files/*.cpp. Как этого избежать?
>Здравствуйте!
>
>Нужно заархивировать файлы по абсолютному пути, но так, чтобы эти файлы оказались
>в корне архива.
>
>tar -czPf /backup/bakup.tar.gz /path/to/files/*.cpp
>
>Такая команда работает, но в архив переноситсяструктура /path/to/files/*.cpp. Как этого избежать?maybe man tar?
>>Здравствуйте!
>>
>>Нужно заархивировать файлы по абсолютному пути, но так, чтобы эти файлы оказались
>>в корне архива.
>>
>>tar -czPf /backup/bakup.tar.gz /path/to/files/*.cpp
>>
>>Такая команда работает, но в архив переноситсяструктура /path/to/files/*.cpp. Как этого избежать?
>
>maybe man tar?С этого все началось... и привело на этот форум. Не осилил.
>Здравствуйте!
>
>Нужно заархивировать файлы по абсолютному пути, но так, чтобы эти файлы оказались
>в корне архива.
>
>tar -czPf /backup/bakup.tar.gz /path/to/files/*.cpp
>
>Такая команда работает, но в архив переноситсяструктура /path/to/files/*.cpp. Как этого избежать?Нужно изменить имя файла помещаемого в архив, например
шаблон /path/to/files/*.cpp расскрывается шеломпример:
tar -cz --transform="s/home\/nuinu\/work\/util\/samba\///" -f test3.tar.gz /home/misha/work/nuinu/samba/*.au
>Здравствуйте!
>
>Нужно заархивировать файлы по абсолютному пути, но так, чтобы эти файлы оказались
>в корне архива.
>
>tar -czPf /backup/bakup.tar.gz /path/to/files/*.cpp
>
>Такая команда работает, но в архив переноситсяструктура /path/to/files/*.cpp. Как этого избежать?Можно просто
cd /path/to/files && tar -czPf /backup/bakup.tar.gz ./*.cpp
нельзя юзать cd, а ключа --transform в моей версии нету (
# uname -sor
Linux 2.6.19-gentoo-r5 GNU/Linux
>нельзя юзать cd, а ключа --transform в моей версии нету (
>
>
># uname -sor
>Linux 2.6.19-gentoo-r5 GNU/Linux
>tar --version ???
>нельзя юзать cdПросто любопытно. А почему?
+1 к предыдущим ораторам>нельзя юзать cd,
Ты нам типа постепенно создаёшь трудности, чтобы мы их, твои трудности, преодолевали? Ты нам Злобный Буратино?!
Сделай временную директорию, все фалы - симлинками в (с дублированием имён -- сам как-нибудь: сам создал себе дурацкую задачу -- сам и получай удовольствие), cd в неё (почему, нельзя cd-то?? ну, суб-шел сделай или скрипт-обёртку), и tar с ключём (он-то есть?) h.
>а ключа --transform в моей версии нету
Какой ты нудный! "Обнови" tar, поставь GNU tar... Как оно "у вас там"?... 8-O "Порты обновить"? "Обнови" постановку задачи?? Поищи программера?
>ключа --transform в моей версии нету
>Linux 2.6.19-gentoo-r5gtar ??!!
>GNU/Linux
Что удивиельно...
# tar --version
tar (GNU tar) 1.14
Copyright (C) 2004 Free Software Foundation, Inc.
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License;
see the file named COPYING for details.
Written by John Gilmore and Jay Fenlason.cd использовать нельзя, т.к. собираюсь использовать этот код внутри чужого. Всю логику последнего не понял, поэтому боюсь ошибок.
Трудности я не создаю, просто хочу создать архив и добавить в него нужные мне файлы.
>cd использовать нельзя, т.к. собираюсь использовать этот код внутри чужого. Всю логику
>последнего не понял, поэтому боюсь ошибок.Ну, тогда pushd/popd.
Или субшелл, как было уже озвучено.
>cd использовать нельзя, т.к. собираюсь использовать этот код внутри чужого. Всю логику
>последнего не понял, поэтому боюсь ошибок.
>
>Трудности я не создаю, просто хочу создать архив и добавить в него
>нужные мне файлы.тю... разьве это проблема?
variablekotoroinetvkode2=`pwd` && cd /path/to/files && tar -czPf /backup/bakup.tar.gz ./*.cpp ; cd $variablekotoroinetvkode2Зачем искать сложные пути
>[оверквотинг удален]
>>последнего не понял, поэтому боюсь ошибок.
>>
>>Трудности я не создаю, просто хочу создать архив и добавить в него
>>нужные мне файлы.
>
>тю... разьве это проблема?
>variablekotoroinetvkode2=`pwd` && cd /path/to/files && tar -czPf /backup/bakup.tar.gz ./*.cpp ; cd $variablekotoroinetvkode2
>
>
>Зачем искать сложные путиуже так и сделал. Сразу не сообразил, но после ваших ответов доперло. Всем спасибо.
>>тю... разьве это проблема?
>>variablekotoroinetvkode2=`pwd` && cd /path/to/files && tar -czPf /backup/bakup.tar.gz ./*.cpp ; cd $variablekotoroinetvkode2
>>
>
>уже так и сделал. Сразу не сообразил, но после ваших ответов доперло.И все-таки pushd/popd ...
Хрен ли думать - все давно придумано! (Хазанов)
>И все-таки pushd/popd ...push-pop не нужен. :) (И суб-шел. И =`pwd`. ...и да, "проверено в /bin/sh". :/ )
$ pwd; cd /usr/share/doc/dpkg/; echo $PWD; cd - >/dev/null; pwd
/
/usr/share/doc/dpkg
/
$ _>Хрен ли думать - все давно придумано! (Хазанов)
Причём придумано гораздо больше, чем... :-D без поллитры разберёшься.
PS: Разведка доложила, что --transform-чего-там появился в версии 1.16 GNU tar-а (и её бетах - 1.15.90+).
>тю... разьве это проблема?
>variablekotoroinetvkode2=`pwd` && cd /path/to/files && tar -czPf /backup/bakup.tar.gz ./*.cpp ; cd $variablekotoroinetvkode2$ pwd; (cd wrk/; pwd ); pwd
/home/abm
/home/abm/wrk
/home/abm
$ _>Зачем искать сложные пути
Та шо Вы говорите? ;)
>[оверквотинг удален]
>
>$ pwd; (cd wrk/; pwd ); pwd
>/home/abm
>/home/abm/wrk
>/home/abm
>$ _
>
>>Зачем искать сложные пути
>
>Та шо Вы говорите? ;)Если новым условием будет отсутствие pwd, то субшел тут бесспорно лучшее решение :)))
А так дело вкуса. Кому-то так понятнее читать, кому-то эдак. Ведь нельзя же исключить, что в код когда-нибудь придется лезть снова :)
a tak
tar -czf /backup/bakup.tar.gz -C / path/to/files/*.cpp
вариант хороший, но с ошибкойtar -czf /backup/bakup.tar.gz -C /path/to/files /path/to/files/*.cpp
Ключ -C меняет текущую директорию на время выполнения тара
и не надо морочиться с сохранением директории
>вариант хороший, но с ошибкой
>
>tar -czf /backup/bakup.tar.gz -C /path/to/files /path/to/files/*.cpp
>
>Ключ -C меняет текущую директорию на время выполнения тара
>и не надо морочиться с сохранением директории
# tar -czf del.tar.gz -C `pwd` `pwd`/*.cpp
tar: Removing leading `/' from member names
>[оверквотинг удален]
>>
>>tar -czf /backup/bakup.tar.gz -C /path/to/files /path/to/files/*.cpp
>>
>>Ключ -C меняет текущую директорию на время выполнения тара
>>и не надо морочиться с сохранением директории
>
>
># tar -czf del.tar.gz -C `pwd` `pwd`/*.cpp
>tar: Removing leading `/' from member names
>И снова ошибка правильно так:
# tar -czf del.tar.gz -C `pwd` *.cpp...)))