【发布时间】:2014-01-08 15:36:06
【问题描述】:
我试图基本上查看一个目录,其中包含每个用户的子目录。说 user1 和 user2 等等。我想基本上遍历每个目录并查找早于某个日期的文件并将其记录下来。我可以使用 ls -d /directory/*/ 获取目录列表。我知道我可以使用 find ./ -type f -mtime +30 来查找超过 30 天未修改的文件。我很难弄清楚如何使用 find 所以每次通过它都会看起来像 find ./user1 -type f -mtime30 然后 ./user2 等等。
#!/bin/bash
LIST="$(ls -d /Volumes/db_backups/*/)"
for i in "$LIST";do
fold=`basename $i`
echo $fold
ModList=$(find $i -type f -mtime +30 >$fold.out )
$ModList
done
更新:我能够获得文件列表。但是,我不想遍历特定的子目录并向每个用户发送电子邮件。例如,我记录了一个文件,例如 /dir1/dir2/user1/file.txt。我将如何获取 user1 列表并将其放入 user1.out 然后 user2.out 等等?
【问题讨论】:
-
您是否尝试通过其中路径的子字符串拆分文件?
-
我想我已经接近了。我将此添加到我的 for 循环中。 for i in "$LIST";do fold=
basename $i所以基本上我想为每个具有超过 x 天的文件列表的子目录创建输出文件。然后我想我基本上可以将每个输出文件通过电子邮件发送给每个用户。 -
请将您的实际代码添加到问题中。