2010-11-27 4 views
5

предположим я хочу, чтобы пронестись этот реж 〔C:/Users/XAH/ErgoEmacs_Source/ergoemacs/наращивание Util /〕создание zip без записи корневых путей; программно

и мой я хочу вывод реж быть 〔C:/Пользователи/XAH/xx2 /〕

(мой текущий реж может быть где угодно. Я звоню зип в программе Elisp) поэтому я сделать

zip -r c:/Users/xah/xx2/build-util.zip c:/Users/xah/ErgoEmacs_Source/ergoemacs/build-util/ 

затем пронестись будет записывать весь путь этого

adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/ (stored 0%) 
adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/.svn/ (stored 0%) 
adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/.svn/all-wcprops (deflated 56%) 
... 

Я хочу, чтобы пути просто начинались с build-util.

примечание: я звоню в программу (elisp), и я не могу использовать какую-либо концепцию переменной envirenment.

Возможно ли это с некоторым параметром zip?

+1

AFAIK отсутствует опция -C-tar для zip, поэтому вам нужно будет изменить текущий каталог перед его выполнением. – tokland 2010-11-27 13:52:11

+0

hmmm ... `cd c:/Пользователи/xah/ErgoEmacs_Source/ergoemacs; zip ... `, это дает относительный путь, это то, что вам нужно? возможно использование elisp? – ajreal 2010-11-27 14:14:36

ответ

4

Как ни странно, лучшим вариантом может быть использование jar из Java JDK.

jar -cMf c: /Users/xah/xx2/build-util.zip -C c:/Пользователи/xah/ErgoEmacs_Source/ergoemacs/build-util /.

«-M» сообщает банку, что он не создает файл манифеста, а -C сообщает, что он меняет каталоги, прежде чем начинать застегивать файлы вверх. Документация, основанная на этом, приведена здесь: http://download.oracle.com/javase/tutorial/deployment/jar/build.html

4

Одна из моих любимых функций bash - pushd, она сохраняет находящуюся в данный момент директорию и перемещает вас в указанный вами каталог. Обратная функция - popd, она возвращает вас в каталог, в котором вы были, перед pushd. Например вы

pushd c:/Users/xah/ErgoEmacs_Source/ergoemacs 
zip -r c:/Users/xah/xx2/build-util.zip build-util/ 
popd 

Я думаю, что вы завершаете с тем, что вы хотите.

Смежные вопросы