我创建了一个 Bash 脚本,它与"Hello World"相呼应。我还创建了一个测试用户bob,使用adduser
.
没有人有权执行该文件,如下所示ls
:
$ ls -l hello.sh
-rw-r--r-- 1 george george 19 Mai 29 13:06 hello.sh
Run Code Online (Sandbox Code Playgroud)
正如我们从上面看到的,文件的所有者是乔治,他只有读写访问权限,但没有执行访问权限。但是以乔治身份登录我可以直接执行脚本:
$ . hello.sh
Hello World
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,我以bob身份登录,我只有读取权限,但我仍然可以执行该文件:
$ su bob
Password:
$ . /home/george/testdir/hello.sh
Hello World
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?
我有 4 个文件,我想将它们包含在.zip文件中。
drwxr-xr-x 7 skemelio themelis 4,0K ??? 18 00:21 CSharp
drwxr-xr-x 11 skemelio themelis 4,0K ??? 18 00:17 gnome-games
drwxr-xr-x 8 skemelio themelis 4,0K ??? 18 00:17 gnome-music
drwxr-xr-x 4 skemelio themelis 4,0K ??? 18 00:18 Test
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它们的大小总共为 16K。
我正在使用下面的命令创建 zip:
zip -r myfiles.zip *
Run Code Online (Sandbox Code Playgroud)
该文件已成功创建,但现在其大小为20M,如下所示!
drwxr-xr-x 7 skemelio themelis 4,0K ??? 18 00:21 CSharp
drwxr-xr-x 11 skemelio themelis 4,0K ??? 18 00:17 gnome-games
drwxr-xr-x 8 skemelio themelis 4,0K ??? 18 00:17 gnome-music …
Run Code Online (Sandbox Code Playgroud) 我想自动创建一些文件,所以我创建了一个脚本。我还想指定这些文件的创建日期。
例如,在终端中,要创建一个创建日期为2012 年 5 月 12日的file.txt,我可以如下所示,touch
touch -d 20120512 file.txt
Run Code Online (Sandbox Code Playgroud)
列出该文件确认日期,
-rw-rw-r-- 1 lenovo lenovo 0 May 12 2012 file.txt
Run Code Online (Sandbox Code Playgroud)
如果我在脚本中应用上述内容,我正在创建的文件都将当前时间作为创建时间,而不是我指定的时间。我在这里做错了什么?
脚本
#!/bin/bash
##################################
#Generate dat and snapshot files.#
##################################
srv_dir="/home/lenovo/Source/bash/srv"
main_dir="${srv_dir}/main"
database_dir="${main_dir}/Database"
dat_file="${main_dir}/remote.dat"
if [[ -e ${main_dir} ]]; then
echo "${main_dir} allready exists."
echo "Aborting..."
exit 0
fi
# Create directories.
mkdir -p ${database_dir}
# Create files.
if [[ $1 == "--dat-newer" ]]; then
# User wants dat file to be the latest modified …
Run Code Online (Sandbox Code Playgroud) bash ×2
command-line ×1
compression ×1
date ×1
executable ×1
permissions ×1
shell-script ×1
tar ×1
touch ×1
ubuntu ×1
users ×1
zip ×1