源码路径:
/var/log/
在这里,我有 4 个文件夹命名ad1nrld,ad2nrld,icp1rmnrl,icp2rmnrl
我可以将所有文件移动到另一个名为/home/spsy/logs_bkp
. 但我想在此/var/log
路径的每个文件夹(ad1nrld、ad2nrld、icp1rmnrl、icp2rmnrl)中保留最新的 5 个文件,其余文件将移至/home/spsy/logs_bkp
路径。
在源路径,
/var/log/ad1nrld
- 仅存在最新的 5 个文件,其余文件将移动到/home/spsy/logs_bkp/ad1nrld
路径
我已尝试使用以下代码移动文件,并且它们已成功移动。但我无法在各自的文件夹中保留最新的 5 个文件。
for i in `ls -1rt | egrep 'nrld|mnrl'`
do
cd $i
mv *log /home/spsy/logs_bkp/$i
echo "files moved for &i"
cd ..
done
当我添加代码以保留最新的 5 个文件时,以下部分不起作用。
for i in `ls -1rt | egrep 'nrld|mnrl'`
do
cd $i
count_files=`ls -lrt | wc -l`
if [ $count_files -gt 5 ];
then
tomove=$(($count_files-5))
for part in `ls -1rt`
do
if [ $tomove -gt 0 ]
then
mv $part /home/spsy/logs_bkp/$i
tomove=$(($tomove-1))
echo "files moved for &i"
cd ..
fi
done
fi
done