diff --git a/source/_posts/gnu-vs-busybox-tools.md b/source/_posts/gnu-vs-busybox-tools.md index f16dc73..03d94e5 100644 --- a/source/_posts/gnu-vs-busybox-tools.md +++ b/source/_posts/gnu-vs-busybox-tools.md @@ -45,6 +45,7 @@ So, Alpine uses BusyBox and Ubuntu uses GNU. While Ubuntu also bundles with Busy I tested the tools on Alpine and Ubuntu, and noted their behaviour. BusyBox = BB. -- **gzip/gunzip/zcat**: BB only support gzip/bzip2/xz format, not the ubiquitous zip. To extract, use **unzip**. GNU supports zip, but its zcat can only extract the first file. +- **gzip/gunzip/zcat**: BB only support gzip/bzip2/xz format, not the ubiquitous zip. To extract, use **unzip**. GNU supports zip, but its zcat can only extract the first file. Use bsdtar to extract all files. - **unzip**: GNU doesn't support stdin as input. Use funzip to decompress stdin, but only extract the first file like zcat. BB support stdin and extract all files, through `unzip -`. -- **sed**: BB doesn't support -z argument which is used to find/replace \n new line character. A [workaround](https://stackoverflow.com/a/1252191) is `sed ':a;N;$!ba;s/\n//g' file` or `sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g' file`. GNU `sed -z 's/\n//g' ` works. \ No newline at end of file +- **sed**: BB doesn't support -z argument which is used to find/replace \n new line character. A [workaround](https://stackoverflow.com/a/1252191) is `sed ':a;N;$!ba;s/\n//g' file` or `sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g' file`. GNU `sed -z 's/\n//g' ` works. +- **bsdtar**: Since GNU's zcat and funzip can only extract the first file, in addition to BB's unzip, another alternative is bsdtar. bsdtar can be installed through `libarchive-tools` package. To extract zip from stdin, use `$ bsdtar -xf -`. \ No newline at end of file