На самом деле, небольшая модификация к плану warl0ck (потому что я параноик),
/new_var
или что-то и rsync, как описано aptitude autoclean
прежде, чем выполнить rsync, уменьшать сумму, скопированную по (или даже ... clean
если Вы не возражаете повторно загружать свой способный кэш),переместиться /var
кому: /old_var
таким образом, Вы не теряете его сразу же и затем монтируете новый раздел как /var
old_var
- если Вы не возражаете проигрывать, независимо от того, что изменено начиная с перезапуска можно проигнорировать ихотредактируйте fstab, таким образом, новый раздел смонтируется как /var
на будущих начальных загрузках и перезагрузке к нормальному многопользовательскому режиму
sudo rm -fr /old_var
когда Вы уверены, что это работает. Если что-нибудь повреждается, Вы все еще имеете old_var
вокруг Вы можете использовать -C
опцию tar
, чтобы выполнить это:
tar -C /home/username/dir1/dir2 -cvf temp.tar selecteddir
Из man-страницы tar
:
-C directory
In c and r mode, this changes the directory before adding the following files.
In x mode, change directories after opening the archive but before extracting
entries from the archive.
Существует два метода, которые вы можете использовать для подхода этой проблемы.
Первый, на мой взгляд, легче. Просто CD
в каталог непосредственно над тем, кого вы хотите сжать. В этом случае это будет dir2
.
$ cd /home/username/dir1/dir2/
$ tar -cvf temp.tar selecteddir
Второй способ состоит в том, чтобы использовать опцию - преобразование
, которое требует экспрессии SED
и запускает его к именам файлов. Примечание: вам придется сбежать /
в SED
.
$ tar -cvf temp.tar /home/username/dir1/dir2/selecteddir --transform='s/\/home\/username\/dir1\/dir2\///g'
Чтобы избежать этого каталога точек, вы можете удалить его постфактум:
tar czC /path/to/dir. --transform='s,^\./,,' >| foo.tgz
Будет создан архив только с содержимым из /path/to/dir
.