如何使用此脚本语法仅使用文件名来重命名文件?
#!/bin/bash
WATCHED=/mnt/Watched
DESTINATION=/mnt/Destination
inotifywait -re CLOSE_WRITE,CREATE,MOVED_TO --format $'%e\t%w%f' -m $WATCHED |
while IFS=$'\t' read -r events new
do
cp -r "$WATCHED/$new" "$DESTINATION/"
done
当我运行这个时,我得到这个结果
cp: cannot stat '/mnt/Watched//mnt/Watched/newfile.mkv': No such file or directory
我知道,如果格式是这样设置的,--format %f
它会工作得很好,但我无法以这种方式设置它,因为我需要我遗漏的脚本其他部分的事件和完整路径。那么如何为我的 cp 命令提取并分配文件名呢?
谢谢
答案1
我更改"$WATCHED/$new"
为"$new"
per jordanm 的建议,现在可以了。