编写shell脚本以将目录中最旧的文件移动到新目录。?

时间:2019-09-25 06:49:39

标签: linux shell unix

我是Shell脚本的新手。我正在寻求解决方案。如果我的目录中有10个文件,则将第11个文件添加到该目录中。我只想将最早的文件移到其他目录。我为目录命名为工作,为另一个目录命名为 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

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

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令将最早的文件移至其他目录:

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

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

tail -1:它将选择最旧的文件作为最后的文件。