Próbuję tar
znaleźć kolekcję plików w katalogu o nazwie „mój_katalog” i usunąć oryginały za pomocą polecenia:
tar -cvf files.tar my_directory --remove-files
Jednak usuwa tylko pojedyncze pliki w katalogu, a nie sam katalog (co określiłem w poleceniu). Czego tu brakuje?
EDYTOWAĆ:
Tak, przypuszczam, że opcja „usuń pliki” jest dość dosłowna. Chociaż ja też uważałem, że strona podręcznika jest niejasna w tym punkcie. (W Linuksie raczej nie rozróżniam zbytnio katalogów i plików i czasami zapominam, że to nie to samo). Wygląda na to, że konsensus polega na tym, że nie usuwa katalogów.
Jednak mój główny powód, by zadać to pytanie, wynika z obchodzenia się ze ścieżkami bezwzględnymi. Ponieważ musisz określić ścieżkę względną do pliku / plików, który ma zostać skompresowany, musisz zatem przejść do katalogu nadrzędnego, aby odpowiednio go spakować. Moim zdaniem użycie jakiejkolwiek komendy „rm” jest potencjalnie niebezpieczne w tej sytuacji. Tak więc miałem nadzieję uprościć rzeczy, zmuszając tar do usunięcia.
Na przykład wyobraź sobie skrypt kopii zapasowej, w którym katalog kopii zapasowej (tj. Tar) jest zawarty jako zmienna powłoki. Jeśli ta wartość zmiennej powłoki została źle wprowadzona, możliwe, że wynik może zostać usunięty z dowolnego katalogu, w którym byłeś ostatnio.