В вашей команде вы называете каталог .
, который связан с каталогом, в котором вы находитесь. Каталог .
является реальным каталогом, просто случается так, что он имеет ту же последовательность, что и каталог, .
, self, is in. Например, когда вы запускаете скрипт с ./script.sh
, то, что вы делаете, происходит так же, как если бы из другой позиции в файловой системе вы дали команду /path/to/script.sh
.В Bash принято использовать ./
, когда вы запускаете исполняемый файл из локального каталога.В качестве альтернативы вы можете запустить скрипт bash script.sh
Итак, когда вы запускаете
tar cfhpz archive.tar.gz -C /lots/of/subdirectories/files .
, он разрешается до ./all-the-stuff-in-the-directory
.Вам нужно взять все файлы в каталоге, а не рассматривать их как подкаталог ./
.Для этого вы хотите использовать подстановочный знак или регулярное выражение, чартер *
, который соответствует всему.
tar cfhpz archive.tar.gz -C /lots/of/subdirectories/files *
Например, если я запускаю echo ~/Documents/*
/home/seamus/Documents/2013 /home/seamus/Documents/2014 /home/seamus/Documents/2015 /home/seamus/Documents/2016 /home/seamus/Documents/2017 /home/seamus/Documents/2018 /home/seamus/Documents/2019
То, что мы получаем в ответ, - это все содержимое каталога, а не ./
, ../
или других скрытых файлов.
Разница с KDE Ark и Gnome file Archive Manager заключается в том, чтоАрк делает вывод, что ./
, вероятно, просто перенаправление в папку содержит.Это отличается от формы Grome, которая, вероятно, выполняет что-то похожее на ls
в файловой структуре, где фактически позволяет вам пройтись по структуре файла.