#!/bin/bash
START_TIME=$(date +%s)
timestamp=$(date +%Y%m%d_%H%M%S)
path=$pathfile
filename=logFile_$timestamp.txt
find $pathfile -name "*.txt" -type f -mtime +10 -print >> /root/$filename
echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> /root/$filename
END_TIME=$(date +%s)
ELAPSED_TIME=$(expr $END_TIME - $START_TIME)
echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> /root/$filename
echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) ">> /root/$filename
我想从特定路径中删除文件,路径将在单独的文件中定义。因此脚本编写如下所述,从文件中读取路径,但问题是脚本没有在文件中提取路径。可以帮助一些人。 文件名:pathfile /根/ ABC / DIR1 /根/ XYZ / DIR2 的/ etc /变种/ DIR3
答案 0 :(得分:0)
假设我正确地遵循了这个,你有一个文件,在某些时候你分配给变量" pathfile"它包含以下条目:
/root/abc/dir1
/root/xyz/dir2
/etc/var/dir3
假设上述情况属实,find命令不会从文件读取,因此您需要使用while循环从文件中读取,然后使用生成的路径调用find命令:
while read -r path
do
find "$path" -name "*.txt" -type f -mtime +10 -print >> /root/$filename
echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> /root/$filename
END_TIME=$(date +%s)
ELAPSED_TIME=$(expr $END_TIME - $START_TIME)
# Alternative -- (( ELAPSED_TIME = END_TIME - START_TIME ))
echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> /root/$filename
echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) ">> /root/$filename
done<"$pathfile"
如果我误解了你可能需要进一步解释?