我是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
但是我无法将文件移到另一个目录。
答案 0 :(得分:1)
您可以使用以下命令将最早的文件移至其他目录:
mv $(ls -t /home/balaji/work| tail -1) /home/balaji/regular_archieve/
ls -t
:此命令将列出按修改时间排序的目录中的所有文件,最新的优先。
tail -1
:它将选择最旧的文件作为最后的文件。