how to rename files you put into a tar archive using linux 'tar'
linux, tar
Solution
You can modify filenames (among other things) with `--transform`. For example, to create a tape archive `/tmp/foo.tar`, putting files `/etc/profile` and `/etc/bash.bashrc` into it while also renaming `profile` to `foo`, you can do the following:
tar --transform='flags=r;s|bar|foo|' -cf file.tar file1 file2 bar fubar /dir/*
Results of the above is that `bar` is added to `file.tar` as `foo`.
The `r` flag means transformations are applied to regular files only. For more information see GNU tar documentation.
You can use `--transform` multiple times, for example:
tar --transform='flags=r;s|foo|bar|' --transform='flags=r;s|baz|woz|' -cf file.tar /some/dir/where/foo/is /some/dir/where/baz/is /other/stuff/* /dir/too
Problem
I'm trying to create a tar archive with a couple files, but rename those files in the archive. Right now I have something like this: ``` tar -czvf file1 /some/path/to/file2 file3 etc ``` But I'd like to do something like: ``` tar -czvf file1=file1 /some/path/to/file2=file2 file3=path/to/renamedFile3 etc=etc ``` Where, when extracted into directory testDir, you would see the files: - testDir/file1 - testDir/file2 - testDir/path/to/renamedFile3 - testDir/etc How can I do this?