我有一组目录,其中包含用于 LiquidSoap 和 IceCast2 的文件
目前,每次我删除文件或添加文件时,我都必须编辑列出要手动播放的 mp3 的 txt 文件
我想要做的是创建一个脚本或一个 cron 作业,自动创建一个跨文件夹的 mp3 填充路径的简单列表,每次都完全重新生成。
我说需要重新生成以便从文件中删除已删除的文件
文件位于以下目录中:
/home/user1/files/foo 1/
/home/user1/files/foo 2/
etc...
内容是
this file is called this.mp3
another name for a file.mp3
etc...
我想要一个脚本或 cron,创建一个 txt 文件,其中包含每个文件夹的内容,最终结果如下
/home/user1/files/foo 1/this file is called this.mp3
/home/user1/files/foo 1/another name for a file.mp3
/home/user1/files/foo 1/this is a cool filename.mp3
/home/user1/files/foo 2/moar files.mp3
/home/user1/files/foo 2/okay this is getting old.mp3
但如果我删除/home/user1/files/foo 1/this file is called this.mp3
它,它会在下一代中留下 txt 文件,如果我添加yet another file.mp3
到其中一个文件夹中,它将被添加到 txt 文件中
当前正在运行 Ubuntu Server 13.04,如果需要,可以安装软件包,不过我更喜欢使用简单的脚本/crons
答案1
看find
:
find "/home/user1/files/foo 1/" "/home/user1/files/foo 2/" > output.txt
答案2
提示:您也可以这样做LC_ALL=C ls -lR | gzip > listing.ls-lR.gz
。Midnight Commander 可让您查看此类文件(非正式地称为“ls-lR”),就像它们是真实的文件系统一样。
答案3
(假设您正在运行 Linux)您要查找的工具是 inotify(请参阅“man inotify”)。可以将其设置为运行
find "/home/user1/files/foo 1/" "/home/user1/files/foo 2/" > output.txt
每当向目标目录添加(或从目标目录删除)文件时。
对于 Ubuntu,您需要安装 inotify-tools 包。这将安装两个二进制文件:inotifywatch 和 inotifywait。编写所需脚本的一个很好的示例如下:http://exyr.org/2011/inotify-run/
我对我自己研发的基于 Liquidsoap 的点唱机也使用了类似的东西。