{"id":20330557,"url":"https://github.com/mle86/walk","last_synced_at":"2025-07-15T23:33:11.793Z","repository":{"id":46902260,"uuid":"57059072","full_name":"mle86/walk","owner":"mle86","description":"Enter and edit archives like they're directories","archived":false,"fork":false,"pushed_at":"2020-01-31T15:37:02.000Z","size":119,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-04T12:43:29.772Z","etag":null,"topics":["7z","archive","archives","bz2","bzip2","command-line-tool","cpio","directory","gz","gzip","gzipped-files","linux","linux-shell","rar","shell","shell-utilities","tar","tar-archive","zip","zip-files"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mle86.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-25T16:45:30.000Z","updated_at":"2023-09-08T17:09:40.000Z","dependencies_parsed_at":"2022-09-11T19:00:29.198Z","dependency_job_id":null,"html_url":"https://github.com/mle86/walk","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/mle86/walk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mle86%2Fwalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mle86%2Fwalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mle86%2Fwalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mle86%2Fwalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mle86","download_url":"https://codeload.github.com/mle86/walk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mle86%2Fwalk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265467482,"owners_count":23770733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["7z","archive","archives","bz2","bzip2","command-line-tool","cpio","directory","gz","gzip","gzipped-files","linux","linux-shell","rar","shell","shell-utilities","tar","tar-archive","zip","zip-files"],"created_at":"2024-11-14T20:16:39.584Z","updated_at":"2025-07-15T23:33:11.768Z","avatar_url":"https://github.com/mle86.png","language":"Shell","readme":"[//]: # (This file was autogenerated from the man page with 'make README.md')\n\n# walk(1) - enter and manipulate archive files like directories\n\n[![Build Status](https://travis-ci.org/mle86/walk.svg?branch=master)](https://travis-ci.org/mle86/walk)\n[![GPLv3 License](https://img.shields.io/badge/license-GPL%20v3-498e7f.svg?style=flat)](/COPYING)\n\n\nVersion 2.3.0, January 2020\n\n\u003cpre\u003e\u003ccode\u003e\u003cb\u003ewalk\u003c/b\u003e [\u003cb\u003e-cyAq\u003c/b\u003e] [\u003cb\u003e--\u003c/b\u003e] \u003ci\u003eARCHIVE\u003c/i\u003e\u003c/code\u003e\u003c/pre\u003e\n\n# Description\n\n**walk** is a shell tool\nwhich allows you to treat archive files as directories.\nIt completely unpacks an archive file\ninto a temporary directory named to match the archive filename.\nIt then spawns a new shell inside the new temporary directory,\nwhere you may proceed with any command line stuff you wish to do.\nAfter leaving this shell,\n**walk** asks you if you wish to re-pack the archive\nwith the contents of the temporary directory (which you may have changed).\nThis way, you can interactively edit an existing archive,\nexamine its content, add files to it\nand whatever else you wish to do with its contents.\n\nIf **walk** is invoked on a non-existing filename or a non-file name\nwithout the **-c** option,\nit will print an error and exit.\nWith the **-c** option, **walk** will accept non-existing filenames\nand create a new, empty archive with that name.\nThis can be used to create new archives from scratch.\n\n# Installation\n\nThis is just a shell script, it does not need any compilation.\n\n```# make install```\n\nThis will copy the script to /usr/local/bin/**walk**\nand the man page to /usr/local/share/man/man.1/**walk.1.gz**.\n\n\n\n# Supported File Types\n\n**walk** uses the **file**(1) tool to determine the archive file type.\nCurrently, it supports handling these file types:\n\n* tar\n* tar, compressed with gzip/bzip2/xz\n  (requires tar with built-in support for these compression formats,\n  i.e. the -zjJ options)\n* 7-zip\n  (requires **7z**/**7za**/**7zr** binary)\n* zip, jar\n  (requires **zip** and **unzip** binaries)\n* rar\n  (requires **rar** binary)\n* cpio\n  (requires the GNU **cpio** binary)\n* deb, ar\n  (requires the GNU binutils **ar** binary)\n\nIf the **-c** option has been used to create a new empty archive,\nthe **file** tool cannot be used internally\nas there is no prior archive file to analyze.\nIn this case the type is guessed from the filename extension instead.\nThese extensions are recognized:\n\n .tar,\n .tar.gz, .tgz,\n .tar.bz, .tbz, tar.bz2, .tbz2,\n .tar.xz, .txz,\n .7z,\n .zip, .jar,\n .rar,\n .deb,\n .cpio,\n .a\n\n# Options\n\n\n* **-c**  \n  Create non-existing *ARCHIVE*s\n  instead of exiting with an error.\n* **-y**  \n  Assume \\`yes' for the two questions **walk** asks after leaving the subshell.\n  This means the original archive will always be recreated,\n  and the temporary archive directory will always be removed afterwards. \n* **-A**  \n  Store the working directory root (**.**) in the archive,\n  not just its contents.\n  Not all archivers support this\n  (**tar** and **cpio** do).  \n  Unpacking archives which contain the **.** directory entry\n  can cause the current directory's owner and/or mode to be changed\n  by the archiver program,\n  so use this option with caution.\n* **-q**  \n  Quiet mode;\n  suppresses most archiver output\n  such as filenames that are being extracted/compressed.\n\n# Notes\n\nBeware that some archive types have their own idiosyncracies\nconcerning file ownership:\n\n* **tar**, **zip**, and **cpio** archives\n  can store file owner informations.\n  When **walk** is run as non-root,\n  the owner informations are silently discarded.\n* **a** archives (**ar**(1)) can store owner informations,\n  but will always discard them on unpacking.\n* **7z** and **rar** archives don't store owner informations.\n\n# Example\n\n\n\u003cpre\u003e\u003ccode\u003emle@box:~$ \u003cb\u003ewalk test.tgz\u003c/b\u003e\n walk: unpacking archive\n ./httpd.conf\n ./rawdata\n ./uname\n ./subdir/\n ./subdir/a1\n ./subdir/a2\n ./subdir/a3\n walk: starting new shell\nmle@box:~/test.tgz$ \nmle@box:~/test.tgz$ \u003cb\u003els -la\u003c/b\u003e\n drwxr-xr-x  3 mle users 4,0K 2010-09-28 02:44 .\n drwx------ 24 mle users 4,0K 2010-09-28 02:53 ..\n -rw-r-----  1 mle users  30K 2010-09-28 02:42 httpd.conf\n -rw-r--r--  1 mle users 437K 2010-09-28 02:41 rawdata\n drwxr-xr-x  2 mle users 4,0K 2010-09-28 02:45 subdir\n -rwxr-xr-x  1 mle users  14K 2010-09-28 02:44 uname\nmle@box:~/test.tgz$ \u003cb\u003els -l subdir/\u003c/b\u003e\n -rw-r--r-- 1 mle users 300 2010-09-28 02:45 a1\n -rw-r--r-- 1 mle users 400 2010-09-28 02:45 a2\n -rw-r--r-- 1 mle users 500 2010-09-28 02:45 a3\nmle@box:~/test.tgz$ \u003cb\u003erm subdir/a2\u003c/b\u003e\nmle@box:~/test.tgz$ \u003cb\u003eecho foo \u003e bar\u003c/b\u003e\nmle@box:~/test.tgz$ \u003cb\u003e\u003erawdata\u003c/b\u003e\nmle@box:~/test.tgz$ \nmle@box:~/test.tgz$ \u003cb\u003eexit\u003c/b\u003e\n walk: shell terminated.\n walk: Recreate archive test.tgz ? [Y/n]  \u003cb\u003ey\u003c/b\u003e\n walk: recreating archive\n ./httpd.conf\n ./bar\n ./rawdata\n ./uname\n ./subdir/\n ./subdir/a1\n ./subdir/a3\n walk: Delete temporary directory? [Y/n]  \u003cb\u003ey\u003c/b\u003e\n walk: deleting temp dir\nmle@box:~$ \nmle@box:~$ \u003cb\u003els -l test*\u003c/b\u003e\n -rw-r--r-- 1 mle users 19K 2010-09-28 02:56 test.tgz\nmle@box:~$ \u003cb\u003etar tzvf test.tgz\u003c/b\u003e\n -rw-r----- mle/users     30398 2010-09-28 02:42:48 ./httpd.conf\n -rw-r--r-- mle/users         4 2010-09-28 02:55:12 ./bar\n -rw-r--r-- mle/users         0 2010-09-28 02:55:24 ./rawdata\n -rwxr-xr-x mle/users     13900 2010-09-28 02:44:45 ./uname\n drwxr-xr-x mle/users         0 2010-09-28 02:54:50 ./subdir/\n -rw-r--r-- mle/users       300 2010-09-28 02:45:28 ./subdir/a1\n -rw-r--r-- mle/users       500 2010-09-28 02:45:35 ./subdir/a3\n\u003c/code\u003e\u003c/pre\u003e\n\n# License\n\nGNU GPL v3\n\n# Author\n\nMaximilian Eul \u0026lt;[maximilian@eul.cc](mailto:maximilian@eul.cc)\u003e\n(http://github.com/mle86/walk)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmle86%2Fwalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmle86%2Fwalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmle86%2Fwalk/lists"}