自动创建文件夹内容的文本文件

自动创建文件夹内容的文本文件

我有一组目录,其中包含用于 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 的点唱机也使用了类似的东西。

相关内容