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?

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.


Doskonały! Nie wiedziałem o tych modyfikatorach argumentów, dzięki!
Southclaws
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.