Synology
什麼是 .xsh 文件?如何查看其內容?
synology ipkg 安裝程序使用一個文件進行引導,文件名以
.xsh
. 我怎樣才能看到這樣的文件裡面有什麼?
這些是“自解壓”檔案;我發現的第一個在頂部有這個程式碼:
#!/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
…這表明它基本上是一個(大)shell腳本,其中有趣的部分是
dd ... | tar xzv
行;其他行特定於該特定包。該
dd
命令從目前文件中讀取,$0
跳過正確的字節數;然後將該輸出發送給tar
期望壓縮存檔的人。壓縮的 tar 文件已準確插入 xsh 文件中的該位置。要自己查看/提取它,只需按照相同的說明進行操作——每個 xsh 文件都會有所不同!——即:
$ 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 ...
作為提取檔案的更一般規則,您可以查找該
dd
簽名,告訴您可以grep
在此“二進制”文件中輸出匹配項:$ grep -a '^dd if=$0' syno-i686-bootstrap_1.2-7_i686.xsh dd if=$0 bs=205 skip=1 | tar xzv
…然後您可以複製/粘貼以查看或提取您喜歡的內容。您可能還對正在執行的其他命令感興趣;類似地查看這些,再次使用 – 特定於此範例:
$ 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