Сжатие папки (tar) без содержащего ее каталога в имени папки

Я пытаюсь сжать папку с помощью tar команда.

Когда я пытаюсь сжать его, он работает нормально. Проблема связана с именем файла.

Путь к источнику:

/data/file/

Путь назначения:

/data/repo/temp/file.tar.gztar zcvf $srcpath $destinationpath

Я выполняю команду из другой папки, и при извлечении папки я получаю все подкаталоги вместо одной папки с файлами.

Самый простой способ сделать это - сначала записать компакт-диск в каталог:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

Таким образом, каталог (содержащей) папки становится корневым каталогом вашего сжатого файла.

Немного более продвинутым является использование опции -C:

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

Это создает tar.gz файл в текущем (рабочем) каталоге, содержащий все файлы/папки внутри foldername_tocompress (обратите внимание на точку, говоря, что все файлы / папки должны быть включены).

синтаксис tar таков: tar zcvf file.tar.gz /path/dir/to/compress возможно, вам следует изменить свою команду в tar zcvf $destinationpath $srcpath, но мне неясно, что вам нужно. Не могли бы вы уточнить свой вопрос на примере того, чего вы ожидаете от команды tar?

спасибо за комментарий, моя проблема заключается в следующем: после комментария, которым вы поделились здесь “tar zcvf file.tar.gz /path /dir /to/compres” это должно работать нормально, если мы находимся в одном каталоге “file” в моем случае мы работаем из другого каталога, например: /home /testuser1 /файл : файл - это папка, которую я хочу сжать, и я исключаю команду из root, а не из home, поэтому нам может потребоваться указать полный путь к папке, при извлечении я получаю все подкаталоги из /home /testuser1/file вместо папки file

Вероятно, это опечатка, но в вашем примере вы перепутали источник и пункт назначения.