inotifywait - 仅使用文件名而不是完整路径重命名文件?

inotifywait - 仅使用文件名而不是完整路径重命名文件?

如何使用此脚本语法仅使用文件名来重命名文件?

#!/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 的建议,现在可以了。

相关内容