使用 bash 命令在 cpanel 中创建名称中包含 space 的文件无法访问

make a file with the space in its name inaccessible in the cpanel using bash command

我正在为我的服务器安装一个监视系统,这基本上会监视我的目录中的任何 change/delete/modify/create ...所以我可以在发生这些事件时在监视程序中调用一个 .sh 文件所以我的 watcher.sh 文件中有这些

 #!/bin/bash
LOGFILE=/etc/watcher.log
chmod 000 -R 
chown root 
echo "$(date +%Y-%m-%d);$(date +%H:%M:%S);;;;watcher.sh" >> $LOGFILE

当我上传一个名为 a.txt 的文件时,它工作正常,但如果我上传一个名称中包含 space 的文件,则没有任何反应。在日志文件中我有

2017-06-04;18:37:34;/home/domain/public_html/upload/a b.txt;IN_CREATE;128;watcher.sh
chmod: cannot access `/home/domain/public_html/upload/a': No such file or directory
chmod: cannot access `b.txt': No such file or directory
chown: cannot access `/home/domain/public_html/upload/a': No such file or directory
chown: cannot access `b.txt': No such file or directory

名称中的 space 搞砸了。我怎样才能解决这个问题?另外为什么我仍然可以从 cpanel 中删除新上传的文件我很难通过将所有权更改为 root 它在 cpanel 中无法访问。

您可以在参数周围放置引号字符,例如:

chmod 000 -R ""
chown root ""

引号应通过 shell 脚本中的参数解决空格问题。