创建符号链接的Bash脚本正在添加字符._在我的变量中创建一个符号链接



我使用下面的bash脚本随机选择一个.mp4文件,并将其符号链接到应用程序(Plex(可以读取的另一个文件夹。问题是似乎(随机地(存在一个"_"添加到变量$FILE中,然后在符号链接中使用该变量。有什么想法吗?

脚本

#/bin/sh
rm -f /media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ/preroll.mp4
find /media/joshua/Media/PlexPrerolls/ -maxdepth 1 -not -type d | sort -R | tail -1 | while read FILE; do
ln -s "$FILE" /media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ/preroll.mp4 ;
done

Symlink检查

看看每4行的末尾。参见._PlexStrangerThingsPreroll.mp4,然后再参见._PlexSnowPreroll.mp4._Plex preroll 6F.mp4

__不应该出现在那里。

lrwxrwxrwx 1 root root 64 Apr 10 13:19 preroll.mp4 -> /media/joshua/Media/PlexPrerolls/._PlexStrangerThingsPreroll.mp4
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 54 Apr 10 13:23 preroll.mp4 -> /media/joshua/Media/PlexPrerolls/._PlexSnowPreroll.mp4
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 52 Apr 10 13:24 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/Plex preroll 8F.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 66 Apr 10 13:24 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/Plex Preroll-Fallout4-1080-12.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 52 Apr 10 13:25 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/Plex preroll 6F.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 63 Apr 10 13:25 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/Plex Preroll energy reveal.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 62 Apr 10 13:26 preroll.mp4 -> /media/joshua/Media/PlexPrerolls/PlexStrangerThingsPreroll.mp4
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 54 Apr 10 13:27 preroll.mp4 -> /media/joshua/Media/PlexPrerolls/._PlexFirePreroll.mp4
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 54 Apr 10 13:27 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/._Plex preroll 6F.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 55 Apr 10 13:28 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/._Plex preroll 13E.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 63 Apr 10 13:28 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/Plex Preroll energy reveal.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 63 Apr 10 13:28 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/Plex Preroll energy reveal.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 68 Apr 10 13:46 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/._Plex Preroll-Fallout4-1080-12.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 54 Apr 10 13:50 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/._Plex preroll 6F.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 68 Apr 10 13:50 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/._Plex Preroll-Fallout4-1080-12.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 4.0K
lrwxrwxrwx 1 root root 68 Apr 10 13:50 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/._Plex Preroll-Fallout4-1080-12.mp4'
root@wyss-server:/media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ# ls -lh
total 0
lrwxrwxrwx 1 root root 52 Apr 10 13:50 preroll.mp4 -> '/media/joshua/Media/PlexPrerolls/Plex preroll 8E.mp4'

我正在使用ubuntu 18

谢谢@JNevil你说得对。这些文件是从MacOS到Ubuntu的。我没有意识到MacOS会创建那些隐藏的文件。每当我在目录中列出ls文件时,它们都不会显示。

当我将-not ( -iname "._*" )添加到脚本中时,它会忽略这些文件。

以下是更新后的脚本。

#/bin/sh
rm -f /media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ/preroll.mp4
find /media/joshua/Media/PlexPrerolls/ -maxdepth 1 -not -type d -not ( -iname "._*" ) | sort -R | tail -1 | while read FILE; $
ln -s "$FILE" /media/PATH_TO_PREROLL_THAT_PLEX_CAN_READ/preroll.mp4 ;
done

此外,我忘了在我的原始帖子中说,我从以下地方获得了这个剧本:https://www.reddit.com/r/PleX/comments/arccd7/better_way_to_randomize_plexrolls/

如果有人因为搜索引擎或其他原因来到这里,我在这里创建了实现该脚本的说明:https://www.reddit.com/r/PleX/comments/fyoqh4/randomizing_prerolls_on_linux/

最新更新