Pracuję nad skryptem kopii zapasowej i chcę tarować katalog plików:
tar czf ~/backup.tgz /home/username/drupal/sites/default/files
Spowoduje to zniszczenie go, ale kiedy rozpakuję plik wynikowy, zawiera on pełną strukturę plików: pliki są w formacie home/username/drupal/sites/default/files
.
Czy istnieje sposób na wykluczenie katalogów nadrzędnych, aby wynikowy tar po prostu wiedział o ostatnim katalogu ( files
)?
-C
i--directory
nie działa dla mnie na Ubuntu 16.04. To jedyna opcja, która działa.Użyj opcji --directory:
źródło
--directory="/home/username/drupal/sites/default files"
przodu celu~/backup.tgz
.--directory
opcję nie jest"/home/username/drupal/sites/default files"
. Jest to/home/username/drupal/sites/default
, po czym następuje pozycyjnej argumentem określającym nazwę katalogu należy starowane,files
.Cześć, mam lepsze rozwiązanie, gdy wejście do określonego katalogu jest niemożliwe (Makefiles itp.)
Nie zapomnij o kropce (.) Na końcu !!
źródło
.
folder w katalogu głównym tarAby gunzip wszystkie pliki txt (* .txt) od
/home/myuser/workspace/zip_from/
do/home/myuser/workspace/zip_to/
bez struktury katalogów plików źródłowych, użyj następującego polecenia:źródło
Utwórz archiwum tar
tar czf $sourcedir/$backup_dir.tar --directory=$sourcedir WEB-INF en
Rozpakuj pliki tar na komputerze lokalnym
tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/
Prześlij na serwer
scp -r -i $privatekey $sourcedir/$backup_dir.tar $server:$deploydir/med365/ echo "File uploaded.. deployment folders"
Usuń tar na serwerze
ssh -i $privatekey $server tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/
źródło
To zadziałało dla mnie:
źródło
Dla mnie -C lub --directory nie działały, używam tego
cd source/directory/or/file tar -cvzf destination/packaged-app.tgz *.jar # this will put your current directory to what it previously was cd -
źródło
Uprzejmie użyj poniższego polecenia, aby wygenerować plik tar bez struktury katalogów
na przykład:
źródło
-C zrobi płytę za ciebie
źródło
-C
działa, ale musi być używany jak-C <dir> file1 file2 ...