【发布时间】:2022-01-22 19:53:03
【问题描述】:
用于将创建的文件复制到已挂载的软盘上的 sh 脚本在文件创建后不会移动它。
文件“diskplayer.contents”被写入/home/pi/diskplayer/tmp,然后这个脚本应该将它移动到“/media/pi/Floppy Disk/”
监视 diskplayer.contents 文件,然后将其移动到挂载的软盘
#!/bin/sh
# /etc/init.d/copyfiles.sh
### BEGIN INIT INFO
# Provides: copyfiles.sh
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Copies file to the floppy
# Description: Copies specific file from tmp folder to the mounted floppy once created
### END INIT INFO
inotifywait -m /home/pi/diskplayer/tmp -e create @__init__.py |
while read path action file; do
if [ "$file" = "diskplayer.contents" ]; then
sudo chown root:root "${path}/${file}"
sudo chmod 777 "${path}/${file}"
sudo mv "${path}/${file}" /media/pi/Floppy Disk/diskplayer.contents
fi
done
我试过sudo mv "${path}/${file}" /media/floppy/diskplayer.contents 只是想看看它是否会移动到那个文件夹,即使软盘没有安装在那里并且它仍然无法工作
【问题讨论】:
-
如果它在启动时作为初始化脚本运行,那么它已经是 root。不需要任何
sudo调用。您是否完全确定软盘在运行时已安装?也许您需要另一个Required-Start依赖项。 -
Floppy Disk你这里真的有不加引号的空格吗? -
@Fravadona 是的,那是我的软盘驱动器的安装位置。我也尝试过使用没有空间的不同文件夹的脚本,但它仍然不起作用。
-
我们看不到您运行的任何其他脚本,因此我们无法告诉您其中有什么问题,但您发布的脚本无法正常工作 - 请阅读 mywiki.wooledge.org/Quotes 和 mywiki.wooledge.org/BashFAQ/001然后将
/media/pi/Floppy Disk/diskplayer.contents更改为'/media/pi/Floppy Disk/diskplayer.contents'并将while read更改为while read -r,然后如果您仍有问题,请告诉我们。