我正在尝试编写一个将cron
在一个特定目录中作为作业运行的“管理员”脚本。应该创建一个名称为创建日期的存档文件夹,然后查找并将某种类型的所有文件移动到该新文件夹中。
这是我的测试代码:
#!/bin/bash
today=$(date +'%m:%d:%Y')
target="Archived-$today"
mkdir -p $target
find . -type f -name "*.zip" -exec mv -i {} /$target \;
它设法正确创建该文件夹,但是无法将找到的文件移动到该文件夹中。我只是做一个小测试,而脚本和文件都是由同一用户创建的。如果我将其添加sudo
到开头,它将尝试移动文件,但是发生的是,它仅从当前目录中删除了文件,而没有将它们放置在新创建的目录中。
我不尝试移动.zip文件。只是一个例子。
我尝试过chmod 777
同时使用文件和文件夹。同样的事情发生。
我正在运行ubuntu 14.04 LTS。
如果有更好的方法可以做到这一点,请告诉我。
任何朝着正确方向的指针将不胜感激。
编辑
现在可以了。
我将find
声明更新为:
find . -maxdepth 1 -type f -name "*.zip" -exec mv -t "$target/" {} \;
在当前目录中查找文件,而不是子目录:
find . -maxdepth 1 -type f -name '*.zip' -exec mv -t "$target/" {} \;
排除方法:
find . -type f -not -path "$target/*" -name '*.zip' -exec mv -t "$target/" {} \;
请注意,这将仅排除今天的存档,而您将拥有其他存档,我建议第一个命令,或者在主目录之外创建存档目录!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句