Используйте функцию добавления tar с некоторыми уловками. Что-то вроде этого?
$ mkdir temp3; mkdir temp3/temp1 # create another, empty temp1 dir
$ ln temp2 temp3/temp1/temp2 # link temp2 into fake temp1
а затем ...
$ tar cf example.tar temp1 # 1st part of archive without temp2
$ cd temp3
$ tar rf ../example.tar temp1 # append temp2 as subfolder of temp1 to archive
Использование жестких ссылок позволяет по-прежнему иметь символические ссылки во временных каталогах, обрабатываемых как символические ссылки. Так что -h не требуется. Может позже уберечь тебя от неприятностей.
Вы также можете взглянуть на расширения GNU tar, такие как --transform, в сочетании с командой добавления. См. Также: http://www.linuxquestions.org/questions/linux-newbie-8/tar-subdirectory-question-821074/
У меня не работало, как написано, предположительно потому, что
answer=`dd bs=1 count=1 2> /dev/null `
не выполняет команду и устанавливает answer
в возвращаемое значение dd
, а вместо этого присваивает строку(dd bs=1 count=1
)переменной answer
.
Редактирование для расширения
answer=$(dd bs=1 count=1 2> /dev/null)
работал нормально