将“*.squashfs”的查找结果通过管道传输到 unsquashfs

将“*.squashfs”的查找结果通过管道传输到 unsquashfs

我正在寻找能够找到压缩文件系统的东西,并传递输出以取消压缩文件系统,并且它必须是压缩文件系统之外的绝对路径。

例子

/tmp/mnt/live/filesystem.squashfs

期望的输出

/tmp/unsquashedfs/files

我在愚弄像这样的代码行

find /tmp/mnt -iname '*.squashfs' -exec unsqaushfs '*.squashfs' {} \;

find /tmp/mnt -print0 -iname "*.squashfs" | unsquashfs "*.squashfs" -T - 

但无法让它发挥作用。任何人的帮助将不胜感激!

答案1

你基本上是在寻找

find /tmp/mnt -iname '*.squashfs' -exec unsquashfs {} \;

{}被替换为匹配文件的路径。

如果您想指定提取到哪个目录,请传递该-d选项。

find /tmp/mnt -iname '*.squashfs' -exec unsquashfs -d /tmp/unsquashedfs/files {} \;

答案2

所以我想我是在逆向工作,这对我有用

sudo find . -type f \( -name '*.squashfs' -o -name "*.SQFS" \) -exec cp {}  /tmp/fs.squashfs  \; && sudo unsquashfs /tmp/fs.squashfs

感谢网友的帮助我终于结束了! (我需要能够搜索不同的参数并能够在将来添加更多参数)

find /tmp/mnt \( -iname '*.squashfs' -o -iname "*.SQFS" \) -exec unsquashfs -d /tmp/squashfs-root/ {} \;

相关内容