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

Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?
synology
add a comment |
The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?
synology
add a comment |
The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?
synology
The synology ipkg installer bootstraps with a file, with name ending .xsh. How can I see what is inside such file?
synology
synology
edited Mar 9 at 10:43
ctrl-alt-delor
12.4k42661
12.4k42661
asked Mar 9 at 9:13
citykidcitykid
1124
1124
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
add a comment |
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
add a comment |
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
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
edited Mar 9 at 9:58
answered Mar 9 at 9:25
Jeff Schaller♦Jeff Schaller
44.7k1163145
44.7k1163145
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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