我是unix的新手,我搜索了很多信息,但仍然不知道如何在bash中制作它
我所知道的是使用此命令ls -tr|xargs -i ksh -c "mv {} ../tmp/"
来逐个文件移动。
现在我需要创建一个脚本,按系统日期对所有这些文件进行排序,并将它们移动到一个目录中,前1000个最旧的文件将被移动。
示例文件r就像这些
KPK.AWQ07102011.66.6708.01
KPK.AWQ07102011.68.6708.01
KPK.EER07102011.561.8312.13
KPK.WWS07102011.806.3287.13
-----------这是我创建的脚本-------
if [ ! -d /app/RAID/Source_Files/test/testfolder ] then
echo "test directory does not exist!"
mkdir /app/RAID/Source_Files/calvin/testfolder
echo "unused_file directory created!"
fi
echo "Moving xx oldest files to test directory"
ls -tr /app/RAID/Source_Files/test/*.Z|head -1000|xargs -i ksh -c "mv {} /app/RAID/Source_Files/test/testfolder/"
这个脚本的问题是 1)unix提示语法错误'如果' 2)move命令正在运行,但它创建了一个新的文件名testfolder而不是移动到目录testfolder(在此路径中创建了testfolder alredy)
任何人都可以给我一个手?感谢答案 0 :(得分:1)
这有用吗?
mv `ls -tr|head -1000` ../tmp/
head -n
获取前一个命令的n个第一行(这里是1000个最旧的文件)。反引号允许将ls
和head
命令的结果用作mv
的参数。