How to tar a directory including dotfiles, but omitting all reference to the directory itself












0














I want to back up home directories including the usual array of dotfiles, but I do not want the directory itself, or its permissions to be backed up or even mentioned. So, if I have a structure like



homedir
.dotfile
somesubdir
subfile
outerfile


I want a tar that looks like this:



.dotfile
somesubdir
subfile
outerfile


Note the absense of any reference to homedir, and not even a ./ to be seen.



I actually have a solution (posted below) but when I tried to tack it onto the question that made me think of it, some moderator said it needed its own question. So here it is, and I hope it's useful.










share|improve this question







New contributor




4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    0














    I want to back up home directories including the usual array of dotfiles, but I do not want the directory itself, or its permissions to be backed up or even mentioned. So, if I have a structure like



    homedir
    .dotfile
    somesubdir
    subfile
    outerfile


    I want a tar that looks like this:



    .dotfile
    somesubdir
    subfile
    outerfile


    Note the absense of any reference to homedir, and not even a ./ to be seen.



    I actually have a solution (posted below) but when I tried to tack it onto the question that made me think of it, some moderator said it needed its own question. So here it is, and I hope it's useful.










    share|improve this question







    New contributor




    4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      0












      0








      0







      I want to back up home directories including the usual array of dotfiles, but I do not want the directory itself, or its permissions to be backed up or even mentioned. So, if I have a structure like



      homedir
      .dotfile
      somesubdir
      subfile
      outerfile


      I want a tar that looks like this:



      .dotfile
      somesubdir
      subfile
      outerfile


      Note the absense of any reference to homedir, and not even a ./ to be seen.



      I actually have a solution (posted below) but when I tried to tack it onto the question that made me think of it, some moderator said it needed its own question. So here it is, and I hope it's useful.










      share|improve this question







      New contributor




      4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I want to back up home directories including the usual array of dotfiles, but I do not want the directory itself, or its permissions to be backed up or even mentioned. So, if I have a structure like



      homedir
      .dotfile
      somesubdir
      subfile
      outerfile


      I want a tar that looks like this:



      .dotfile
      somesubdir
      subfile
      outerfile


      Note the absense of any reference to homedir, and not even a ./ to be seen.



      I actually have a solution (posted below) but when I tried to tack it onto the question that made me think of it, some moderator said it needed its own question. So here it is, and I hope it's useful.







      tar dot-files






      share|improve this question







      New contributor




      4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 3 hours ago









      4dummies

      12




      12




      New contributor




      4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          1 Answer
          1






          active

          oldest

          votes


















          0














          Using Bash 4.4.19 and GNU tar 1.29, the following works. 'dotglob' makes * recognize dots as well as letters, while 'GLOBIGNORE' is set to ignore "." and "..". The curly braces allow me to direct the output to the current directory, while the pushd and popd make the tar happen where the stuff is. I don't use tar's -C option because that messes up the "*" glob.



          shopt -s dotglob
          GLOBIGNORE=".:.."
          {
          pushd homedir >/dev/null
          tar --create --file=- *
          popd >/dev/null
          } >inner.tar
          shopt -u dotglob


          note that the output file is set to "-" which means standard output which winds up going to the file inner.tar. The redirections to /dev/null silence the mention of the directory changes.






          share|improve this answer










          New contributor




          4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.


















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "106"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });






            4dummies is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492896%2fhow-to-tar-a-directory-including-dotfiles-but-omitting-all-reference-to-the-dir%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            Using Bash 4.4.19 and GNU tar 1.29, the following works. 'dotglob' makes * recognize dots as well as letters, while 'GLOBIGNORE' is set to ignore "." and "..". The curly braces allow me to direct the output to the current directory, while the pushd and popd make the tar happen where the stuff is. I don't use tar's -C option because that messes up the "*" glob.



            shopt -s dotglob
            GLOBIGNORE=".:.."
            {
            pushd homedir >/dev/null
            tar --create --file=- *
            popd >/dev/null
            } >inner.tar
            shopt -u dotglob


            note that the output file is set to "-" which means standard output which winds up going to the file inner.tar. The redirections to /dev/null silence the mention of the directory changes.






            share|improve this answer










            New contributor




            4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.























              0














              Using Bash 4.4.19 and GNU tar 1.29, the following works. 'dotglob' makes * recognize dots as well as letters, while 'GLOBIGNORE' is set to ignore "." and "..". The curly braces allow me to direct the output to the current directory, while the pushd and popd make the tar happen where the stuff is. I don't use tar's -C option because that messes up the "*" glob.



              shopt -s dotglob
              GLOBIGNORE=".:.."
              {
              pushd homedir >/dev/null
              tar --create --file=- *
              popd >/dev/null
              } >inner.tar
              shopt -u dotglob


              note that the output file is set to "-" which means standard output which winds up going to the file inner.tar. The redirections to /dev/null silence the mention of the directory changes.






              share|improve this answer










              New contributor




              4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.





















                0












                0








                0






                Using Bash 4.4.19 and GNU tar 1.29, the following works. 'dotglob' makes * recognize dots as well as letters, while 'GLOBIGNORE' is set to ignore "." and "..". The curly braces allow me to direct the output to the current directory, while the pushd and popd make the tar happen where the stuff is. I don't use tar's -C option because that messes up the "*" glob.



                shopt -s dotglob
                GLOBIGNORE=".:.."
                {
                pushd homedir >/dev/null
                tar --create --file=- *
                popd >/dev/null
                } >inner.tar
                shopt -u dotglob


                note that the output file is set to "-" which means standard output which winds up going to the file inner.tar. The redirections to /dev/null silence the mention of the directory changes.






                share|improve this answer










                New contributor




                4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                Using Bash 4.4.19 and GNU tar 1.29, the following works. 'dotglob' makes * recognize dots as well as letters, while 'GLOBIGNORE' is set to ignore "." and "..". The curly braces allow me to direct the output to the current directory, while the pushd and popd make the tar happen where the stuff is. I don't use tar's -C option because that messes up the "*" glob.



                shopt -s dotglob
                GLOBIGNORE=".:.."
                {
                pushd homedir >/dev/null
                tar --create --file=- *
                popd >/dev/null
                } >inner.tar
                shopt -u dotglob


                note that the output file is set to "-" which means standard output which winds up going to the file inner.tar. The redirections to /dev/null silence the mention of the directory changes.







                share|improve this answer










                New contributor




                4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                share|improve this answer



                share|improve this answer








                edited 2 hours ago





















                New contributor




                4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                answered 3 hours ago









                4dummies

                12




                12




                New contributor




                4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.





                New contributor





                4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                4dummies is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






















                    4dummies is a new contributor. Be nice, and check out our Code of Conduct.










                    draft saved

                    draft discarded


















                    4dummies is a new contributor. Be nice, and check out our Code of Conduct.













                    4dummies is a new contributor. Be nice, and check out our Code of Conduct.












                    4dummies is a new contributor. Be nice, and check out our Code of Conduct.
















                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492896%2fhow-to-tar-a-directory-including-dotfiles-but-omitting-all-reference-to-the-dir%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Entries order in /etc/network/interfaces

                    新発田市

                    Grub takes very long (several minutes) to open Menu (in Multi-Boot-System)