我看到有一个与此类似的问题,但该答案与 Git 相关,我在这里没有使用它。
我经常制作一些小脚本,然后发送给命令行技能非常有限的其他人来运行。有没有办法打包我的脚本,以便用户不需要更改我的可执行文件的权限?我尝试打包我的脚本,以便第一个可执行脚本更改所有其他脚本的权限,但此时我无法找到一种方法来以用户不必提供它的方式发送第一个脚本执行权限即chmod +x First_script
我是否因为没有解决方案而遇到了这堵墙?
答案1
一种简单的方法是制作 tarball,即压缩tar
档案。如果您使用 root 权限创建它,并且用户也使用 root 访问权限提取内容,则应保留权限。
例子
sudo -cvzf filename.tar.gz directory # create a compressed tar archive of the directory and its content
cd /to-where-you-want-it-extracted
sudo -xvzf filename.tar.gz # extract the content from the archive
有详细信息man tar
,您可以tar
通过互联网找到很好的教程。
答案2
答案3
命令shar
seeman shar
就是为了做这种事情而发明的。
从man shar
, 或https://manpages.ubuntu.com/manpages/bionic/en/man1/shar.1.html
描述
shar creates "shell archives" (or shar files) which are in text format and can be emailed.
These files may be unpacked later by executing them with /bin/sh. The resulting archive
is sent to standard out unless the -o option is given. A wide range of features provide
extensive flexibility in manufacturing shars and in specifying shar "smartness". Archives
may be fairly simple (--vanilla-operation) or essentially a mailable tar archive.
和
例子
The first shows how to make a shell archive out of all C program sources. The second
produces a shell archive with all .c and .h files, which unpacks silently. The third
gives a shell archive of all uuencoded .arc files, into numbered files starting from
arc.sh.01. The last example gives a shell archive which will use only the file names at
unpack time.
shar *.c > cprog.shar
shar -Q *.[ch] > cprog.shar
shar -B -l28 -oarc.sh *.arc
shar -f /lcl/src/u*.c > u.sh