简体   繁体   English

Bash 创建符号链接的脚本是在我的变量中添加characters._来创建符号链接

[英]Bash script to create a symlink is adding the characters ._ in my variable to create a symlink

I'm using the below bash script to randomly choose a.mp4 file and symlink it to another folder that the application (Plex) can read.我正在使用下面的 bash 脚本随机选择一个 .mp4 文件并将其符号链接到应用程序(Plex)可以读取的另一个文件夹。 The problem is that there seems to be (randomly) a "._" added in the variable $FILE that is then used in the symlink.问题是似乎(随机)在变量 $FILE 中添加了一个“._”,然后在符号链接中使用。 Any ideas?有任何想法吗?

Script脚本

#/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 check符号链接检查

Just look at the end of every 4th line.只需查看每 4 行的末尾。 See ._PlexStrangerThingsPreroll.mp4 then ._PlexSnowPreroll.mp4 again ._Plex preroll 6F.mp4请参阅._PlexStrangerThingsPreroll.mp4然后._PlexSnowPreroll.mp4再次._Plex preroll 6F.mp4

The._ should not appear there. ._ 不应出现在那里。

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'

I'm using ubuntu 18我正在使用 ubuntu 18

Thank you @JNevill you are correct.谢谢@JNevill,你是对的。 The files are coming from MacOS to Ubuntu.这些文件来自 MacOS 到 Ubuntu。 I did not realize that MacOS creates those hidden files.我没有意识到 MacOS 会创建这些隐藏文件。 Whenever I list ls files in the directory they do not show.每当我在目录中列出ls文件时,它们都不会显示。

When I added -not \( -iname "._*" \) to the script it ignores those files.当我将-not \( -iname "._*" \)添加到脚本时,它会忽略这些文件。

Below is the updated script.以下是更新后的脚本。

#/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

Also, I forgot to say in my original post that I got this script originally from: https://www.reddit.com/r/PleX/comments/arccd7/better_way_to_randomize_plexrolls/另外,我忘了在我原来的帖子中说我最初是从: https://www.reddit.com/r/PleX/comments/arccd7/better_way_to_randomize_plexrolls/

In case someone gets here because of a search engine or something, I've created instructions to implement this script for its intended purpose here: https://www.reddit.com/r/PleX/comments/fyoqh4/randomizing_prerolls_on_linux/万一有人因为搜索引擎或其他原因到达这里,我已经创建了指令来实现此脚本以实现其预期目的: https://www.reddit.com/r/PleX/comments/fyoqh4/randomizing_prerolls_on_linux/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM