Commands.page Logo

How to Set Custom Prefix for Tar Archive Paths

This article explains how to add a custom directory prefix to file paths within a tar archive on Ubuntu. By using specific command-line flags, you can ensure that when the archive is extracted, all files are placed inside a designated folder structure automatically. The guide covers the necessary tar commands, explains the syntax, and provides a method to verify the resulting archive contents.

To set a custom prefix for paths inside a tar archive, you will use the tar command with the --transform option. This utility is pre-installed on Ubuntu and allows you to modify file names and paths during the archiving process. Open your terminal and navigate to the directory containing the files you wish to archive.

Use the following command structure to create the archive with a custom prefix:

tar --transform 's|^|your-prefix/|' -cvf archive-name.tar source-folder/

Replace your-prefix/ with the desired directory name you want to appear at the start of every path. Replace archive-name.tar with your chosen file name for the archive, and source-folder/ with the path to the files you are compressing. The s|^|your-prefix/| section uses a regular expression to substitute the beginning of the line (^) with your custom prefix.

The flags used in this command serve specific functions. The --transform option applies the sed-style replacement rule to the file paths. The -c flag creates a new archive, -v enables verbose output to show files being processed, and -f specifies the filename of the archive. This ensures that upon extraction, the files will not scatter into the current directory but will remain organized within the prefixed folder.

To verify that the prefix was applied correctly before extracting, list the contents of the archive using the -t flag. Run the following command:

tar -tvf archive-name.tar

Review the output to confirm that every file path listed begins with your custom prefix. Once verified, you can extract the archive using tar -xvf archive-name.tar, and the files will be populated within the new directory structure automatically.