使用 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 脚本中的参数解决空格问题。
我正在为我的服务器安装一个监视系统,这基本上会监视我的目录中的任何 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 脚本中的参数解决空格问题。