SQFSDIFF(1)

πŸ’– SQFSDIFF(1) β€” the sqfsdiff girlies' guide πŸ’–

User Commands Β· sqfsdiff Β· bestie edition πŸ¦‹


✨ NAME ✨

sqfsdiff β€” compare two squashfs images by contents and metadata πŸ‘‘πŸ’…


🌸 SYNOPSIS 🌸

sqfsdiff [OPTIONS...] --old <first> --new <second>

πŸŽ€ DESCRIPTION πŸŽ€

okay so listen. sqfsdiff compares two squashfs images. and like, yes, you could just do a direct diff of the images themselves, but bestie… that's giving chaos. this one actually parses the filesystems and hands you a difference report that actually means something. it's the glow-up version of diffing. ✨

if you're only comparing contents, then any differences in packed file layout, ordering, compression, inode meta data and so on get ignored β€” like, we're not clocking that. the two images count as equal if:

  • every directory contains the same entries
  • symlinks with the same paths have the same targets
  • device nodes have the same device number
  • files have the same size and contents

any difference gets printed as a report to stdout. and the exit status? it's basically diff(1)'s whole vibe: 0 means equal, 1 means different, 2 means problem. 🫢

here are the possible options, no cap:

  • --old, -a <first> β€” specify the first filesystem image or source directory, relativ to which the changes are evaluated. (that's the reference point, the main character, the "before" πŸ’–)
  • --new, -b <second> β€” specify the second filesystem image to source directory to compare to the first one. πŸ‘€
  • --no-contents, -C β€” do not compare file contents. we're not reading the lore today.
  • --no-owner, -O β€” do not compare file owners. who owns what? not our business πŸ™ˆ
  • --no-permissions, -P β€” do not compare permission bits. the permission bits are on their own journey.
  • --timestamps, -T β€” compare file timestamps. okay NOW we're clocking the timeline ⏰
  • --inode-num, -I β€” compare inode numbers of all files. every single one. it's giving thorough.
  • --super, -S β€” also compare meta data in super blocks. yes, the super blocks too, we're going there πŸ’€
  • --extract, -e <path> β€” extract files that exist in both images but have different contents to the specified directory. the contents of the first image end up in a sub directory named old and the contents of the second image in a sub directory named new. so cute, so organized πŸŽ€
  • --help, -h β€” print help text and exit. your bestie always tells you what's up ✨
  • --version, -V β€” print version information and exit. 🌈

πŸ’€ EXIT STATUS πŸ’€

the exit status is similar that of diff(1):

  • 0 means equal πŸ’–
  • 1 means different 😭
  • 2 means problem πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

rdsquashfs(1), sqfs2tar(1) β€” go read those too, they're iconic, iykyk πŸ’…


πŸ‘‘ AUTHOR πŸ‘‘

Written by David Oberhollenzer. (the icon. the legend. the moment.)


Copyright Β© 2019 David Oberhollenzer et al

License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. fr fr, no warranty. periodt. πŸ’…

and that's the whole page bestie!! this was sqfsdiff, from the August 2019 era, living its best life as part of the sqfsdiff manual, page SQFSDIFF(1). mwah 🫢✨

πŸ“¦ where this page comes from