What are .xsh files? How to see its contents?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?










share|improve this question






























    0















    The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?










    share|improve this question


























      0












      0








      0








      The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?










      share|improve this question
















      The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?







      synology






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 9 at 10:43









      ctrl-alt-delor

      12.4k42661




      12.4k42661










      asked Mar 9 at 9:13









      citykidcitykid

      1124




      1124




















          1 Answer
          1






          active

          oldest

          votes


















          1














          These are "self-extracting" archives; the first one I found has this code at the top:



          #!/bin/sh
          echo "Optware Bootstrap for syno-i686."
          echo "Extracting archive... please wait"
          dd if=$0 bs=205 skip=1 | tar xzv
          cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
          exec /bin/sh --login


          ... which indicates that it's basically a (large) shell script, where the interesting part is the dd ... | tar xzv line; the other lines are specific to that particular package.



          The dd command reads from $0 -- the current file -- skipping past the correct number of bytes; that output is then sent to tar who's expecting a compressed archive. A compressed tar file has been inserted exactly at that position in the xsh file.



          To view/extract it yourself, just follow the same instructions -- which will vary per xsh file! -- namely:



          $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 skip=1 > bootstrap.tgz
          $ gunzip bootstrap.tgz ## for example
          $ tar tf bootstrap.tar ## for example
          bootstrap/
          bootstrap/bootstrap.sh
          bootstrap/ipkg-opt.ipk
          bootstrap/ipkg.sh
          ...


          As a slightly more general rule for extracting the archives, you could look for that dd signature, telling grep that it's OK to output the match in this "binary" file:



          $ grep -a '^dd if=$0' syno-i686-bootstrap_1.2-7_i686.xsh 
          dd if=$0 bs=205 skip=1 | tar xzv


          ... which you can then copy/paste to view or extract the contents as you like. You may also be interested in the other commands being executed; view those similarly, with -- again, specific to this example:



          $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 count=1
          #!/bin/sh
          echo "Optware Bootstrap for syno-i686."
          echo "Extracting archive... please wait"
          dd if=$0 bs=205 skip=1 | tar xzv
          cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
          exec /bin/sh --login
          1+0 records in
          1+0 records out
          205 bytes (205 B) copied, 4.7985e-05 s, 4.3 MB/s





          share|improve this answer

























            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
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f505289%2fwhat-are-xsh-files-how-to-see-its-contents%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









            1














            These are "self-extracting" archives; the first one I found has this code at the top:



            #!/bin/sh
            echo "Optware Bootstrap for syno-i686."
            echo "Extracting archive... please wait"
            dd if=$0 bs=205 skip=1 | tar xzv
            cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
            exec /bin/sh --login


            ... which indicates that it's basically a (large) shell script, where the interesting part is the dd ... | tar xzv line; the other lines are specific to that particular package.



            The dd command reads from $0 -- the current file -- skipping past the correct number of bytes; that output is then sent to tar who's expecting a compressed archive. A compressed tar file has been inserted exactly at that position in the xsh file.



            To view/extract it yourself, just follow the same instructions -- which will vary per xsh file! -- namely:



            $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 skip=1 > bootstrap.tgz
            $ gunzip bootstrap.tgz ## for example
            $ tar tf bootstrap.tar ## for example
            bootstrap/
            bootstrap/bootstrap.sh
            bootstrap/ipkg-opt.ipk
            bootstrap/ipkg.sh
            ...


            As a slightly more general rule for extracting the archives, you could look for that dd signature, telling grep that it's OK to output the match in this "binary" file:



            $ grep -a '^dd if=$0' syno-i686-bootstrap_1.2-7_i686.xsh 
            dd if=$0 bs=205 skip=1 | tar xzv


            ... which you can then copy/paste to view or extract the contents as you like. You may also be interested in the other commands being executed; view those similarly, with -- again, specific to this example:



            $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 count=1
            #!/bin/sh
            echo "Optware Bootstrap for syno-i686."
            echo "Extracting archive... please wait"
            dd if=$0 bs=205 skip=1 | tar xzv
            cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
            exec /bin/sh --login
            1+0 records in
            1+0 records out
            205 bytes (205 B) copied, 4.7985e-05 s, 4.3 MB/s





            share|improve this answer





























              1














              These are "self-extracting" archives; the first one I found has this code at the top:



              #!/bin/sh
              echo "Optware Bootstrap for syno-i686."
              echo "Extracting archive... please wait"
              dd if=$0 bs=205 skip=1 | tar xzv
              cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
              exec /bin/sh --login


              ... which indicates that it's basically a (large) shell script, where the interesting part is the dd ... | tar xzv line; the other lines are specific to that particular package.



              The dd command reads from $0 -- the current file -- skipping past the correct number of bytes; that output is then sent to tar who's expecting a compressed archive. A compressed tar file has been inserted exactly at that position in the xsh file.



              To view/extract it yourself, just follow the same instructions -- which will vary per xsh file! -- namely:



              $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 skip=1 > bootstrap.tgz
              $ gunzip bootstrap.tgz ## for example
              $ tar tf bootstrap.tar ## for example
              bootstrap/
              bootstrap/bootstrap.sh
              bootstrap/ipkg-opt.ipk
              bootstrap/ipkg.sh
              ...


              As a slightly more general rule for extracting the archives, you could look for that dd signature, telling grep that it's OK to output the match in this "binary" file:



              $ grep -a '^dd if=$0' syno-i686-bootstrap_1.2-7_i686.xsh 
              dd if=$0 bs=205 skip=1 | tar xzv


              ... which you can then copy/paste to view or extract the contents as you like. You may also be interested in the other commands being executed; view those similarly, with -- again, specific to this example:



              $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 count=1
              #!/bin/sh
              echo "Optware Bootstrap for syno-i686."
              echo "Extracting archive... please wait"
              dd if=$0 bs=205 skip=1 | tar xzv
              cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
              exec /bin/sh --login
              1+0 records in
              1+0 records out
              205 bytes (205 B) copied, 4.7985e-05 s, 4.3 MB/s





              share|improve this answer



























                1












                1








                1







                These are "self-extracting" archives; the first one I found has this code at the top:



                #!/bin/sh
                echo "Optware Bootstrap for syno-i686."
                echo "Extracting archive... please wait"
                dd if=$0 bs=205 skip=1 | tar xzv
                cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
                exec /bin/sh --login


                ... which indicates that it's basically a (large) shell script, where the interesting part is the dd ... | tar xzv line; the other lines are specific to that particular package.



                The dd command reads from $0 -- the current file -- skipping past the correct number of bytes; that output is then sent to tar who's expecting a compressed archive. A compressed tar file has been inserted exactly at that position in the xsh file.



                To view/extract it yourself, just follow the same instructions -- which will vary per xsh file! -- namely:



                $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 skip=1 > bootstrap.tgz
                $ gunzip bootstrap.tgz ## for example
                $ tar tf bootstrap.tar ## for example
                bootstrap/
                bootstrap/bootstrap.sh
                bootstrap/ipkg-opt.ipk
                bootstrap/ipkg.sh
                ...


                As a slightly more general rule for extracting the archives, you could look for that dd signature, telling grep that it's OK to output the match in this "binary" file:



                $ grep -a '^dd if=$0' syno-i686-bootstrap_1.2-7_i686.xsh 
                dd if=$0 bs=205 skip=1 | tar xzv


                ... which you can then copy/paste to view or extract the contents as you like. You may also be interested in the other commands being executed; view those similarly, with -- again, specific to this example:



                $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 count=1
                #!/bin/sh
                echo "Optware Bootstrap for syno-i686."
                echo "Extracting archive... please wait"
                dd if=$0 bs=205 skip=1 | tar xzv
                cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
                exec /bin/sh --login
                1+0 records in
                1+0 records out
                205 bytes (205 B) copied, 4.7985e-05 s, 4.3 MB/s





                share|improve this answer















                These are "self-extracting" archives; the first one I found has this code at the top:



                #!/bin/sh
                echo "Optware Bootstrap for syno-i686."
                echo "Extracting archive... please wait"
                dd if=$0 bs=205 skip=1 | tar xzv
                cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
                exec /bin/sh --login


                ... which indicates that it's basically a (large) shell script, where the interesting part is the dd ... | tar xzv line; the other lines are specific to that particular package.



                The dd command reads from $0 -- the current file -- skipping past the correct number of bytes; that output is then sent to tar who's expecting a compressed archive. A compressed tar file has been inserted exactly at that position in the xsh file.



                To view/extract it yourself, just follow the same instructions -- which will vary per xsh file! -- namely:



                $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 skip=1 > bootstrap.tgz
                $ gunzip bootstrap.tgz ## for example
                $ tar tf bootstrap.tar ## for example
                bootstrap/
                bootstrap/bootstrap.sh
                bootstrap/ipkg-opt.ipk
                bootstrap/ipkg.sh
                ...


                As a slightly more general rule for extracting the archives, you could look for that dd signature, telling grep that it's OK to output the match in this "binary" file:



                $ grep -a '^dd if=$0' syno-i686-bootstrap_1.2-7_i686.xsh 
                dd if=$0 bs=205 skip=1 | tar xzv


                ... which you can then copy/paste to view or extract the contents as you like. You may also be interested in the other commands being executed; view those similarly, with -- again, specific to this example:



                $ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 count=1
                #!/bin/sh
                echo "Optware Bootstrap for syno-i686."
                echo "Extracting archive... please wait"
                dd if=$0 bs=205 skip=1 | tar xzv
                cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
                exec /bin/sh --login
                1+0 records in
                1+0 records out
                205 bytes (205 B) copied, 4.7985e-05 s, 4.3 MB/s






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Mar 9 at 9:58

























                answered Mar 9 at 9:25









                Jeff SchallerJeff Schaller

                44.7k1163145




                44.7k1163145



























                    draft saved

                    draft discarded
















































                    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.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f505289%2fwhat-are-xsh-files-how-to-see-its-contents%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

                    Peggy Mitchell

                    Palaiologos

                    The Forum (Inglewood, California)