Szybko uruchom polecenie „tar -cf” z pliku wsadowego „wyślij do” pliku .tar.gz

0

Zainstalowałem tar GNU dla systemu Windows, aby przyspieszyć tarowanie plików, więc nie muszę bałagać się, otwierając 7zip dwa razy, aby spakować, a następnie zgzipować plik.

Aby jeszcze bardziej przyspieszyć proces, próbowałem napisać plik wsadowy, który wygląda następująco:

tar -cf %1.tar.gz %1

Polecenie działa dobrze w terminalu (kiedy otwieram je w moim roboczym katalogu) i wyglądałoby mniej więcej tak:

tar -cf myfile.tar.gz myfile.txt

Jednak po uruchomieniu pliku wsadowego wysyłania dane wejściowe są następujące:

tar -cf C:\path\to\myfile.txt.tar.gz C:\path\to\myfile.txt

Otrzymuję ten błąd z tar:

C:\path\to\my>tar -cf C:\path\to\my\myfile.txt.tar.gz C:\path\to\my\myfile.txt
tar: Cannot open C:\path\to\my\myfile.txt.tar.gz: Function not implemented
tar: Error is not recoverable: exiting now

Nie jestem do końca pewien, co tu jest nie tak, ale jestem pewien, że to nie jest problem z tar, ale raczej pewne zamieszanie ze ścieżkami i nazwami plików.

Zastanawiałem się, czy istnieje przyjemny i prosty sposób na zrobienie tego za pomocą skryptu wsadowego (być może zamiast nazwy pełnej JUST podać nazwę pliku zamiast pełnej ścieżki), czy też muszę zrobić coś bardziej skomplikowanego?

Southclaws
źródło

Odpowiedzi:

0

Wydaje mi się, że tar nie akceptuje pełnej ścieżki do tworzonego archiwum. Najpierw zmodyfikuj plik wsadowy do płyty CD do żądanego folderu, np

cd "%~dp1" 

a następnie użyj

tar -cf "%~n1.tar.gz" "%~nx1"

W celu uwzględnienia nazw zawierających spacje używane są tutaj cudzysłowy.

Berend
źródło
Doskonały! Nie wiedziałem o tych modyfikatorach argumentów, dzięki!
Southclaws