我正在执行以下命令,但输出不会写入文件
move.log
。我在命令中遗漏了什么吗?
find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ >> /db_backups/move.log 2>&1 \;
答案1
你的find
命令行:
find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ >> /db_backups/move.log 2>&1 \;
是相同的
find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ \; >>/db_backups/move.log 2>&1
以这种方式使用该find
命令时,根本不会产生任何输出,因此不会将新数据写入文件move.log
。
如果您想存储已移动文件的名称,请-print
在以下内容之前添加-exec
:
find /db_backups/30_plus_days -type f -mtime +90 -print -exec mv {} /db_backups/90_plus_days/ \; >>/db_backups/move.log 2>&1
或者,使用更好的换行符(仅用于可读性):
find /db_backups/30_plus_days \
-type f -mtime +90 -print \
-exec mv {} /db_backups/90_plus_days/ 2>&1 \; \
>>/db_backups/move.log