首页 > 解决方案 > 编写shell脚本将目录中最旧的文件移动到新目录。?

问题描述

我是 shell 脚本的新手。我正在寻找解决方案。如果我的目录中有 10 个文件,则将第 11 个文件添加到此目录中。我只想将最旧的文件移动到其他目录。我为我的目录命名Work并为另一个目录命名为regular_archieve。我试过这个,

work = /home/balaji/work
regular_archieve = /home/balaji/regular_archieve
cd $work
for i in 'ls -t | sed -e '1,10d' | xargs -d '\n' rm -f'
do
 mv $i $regular_archieve
done


if [ls /backup | wc -1 > 10 | mv /home/balaji/regular-archieve]
 then
   echo "more than 10 n files"
fi

ls -t | sed -e '1,10d' | xargs -d '\n' mv -f regular-archieve

但我无法将文件移动到另一个目录。

标签: linuxshellunix

解决方案


您可以使用以下命令将最旧的文件移动到其他目录:

mv $(ls -t /home/balaji/work| tail -1) /home/balaji/regular_archieve/

ls -t:此命令将列出目录中的所有文件,按修改时间排序,最新的在前。

tail -1:它将选择最后一个文件,这将是最旧的文件。


推荐阅读