【发布时间】:2014-03-05 02:33:02
【问题描述】:
我有一个使用 tar 归档一堆目录的脚本,下面是 sn-p..
run_tar()
{
clear
echo "***"
echo "This can take up to an hour, please wait..."
echo "***"
tar -X $BASE/synclive_exclude.list -cf - /usr2/docs /usr2/devel_backup /usr2/devel_config /usr2/devel_logs /usr2/devel_reports /usr2/devel_snapshots /usr2/doc-files | gzip > $DUMP_DIR/stage/usr2.tar.gz &
wait
}
我遇到的问题是.. 对于上面的一个特定目录.. /usr2/devel_snapshots 该目录很大并且包含每日备份..
此文件夹中的文件夹是..
drwxrwxrwx 3 root system 8192 Feb 01 11:15 201402011115
drwxrwxrwx 3 root system 8192 Feb 02 11:15 201402021115
drwxrwxrwx 3 root system 8192 Feb 03 11:15 201402031115
drwxrwxrwx 3 root system 8192 Feb 04 11:15 201402041115
drwxrwxrwx 3 root system 8192 Feb 05 11:15 201402051115
drwxrwxrwx 3 root system 8192 Feb 06 11:15 201402061115
是否可以在我的 tar 命令中仅从 /usr2/devel_snapshots 中获取最近的 5 个文件夹而不是整个文件夹?
我将如何进行这项工作?
操作系统是 AIX 7.1 64bit
谢谢。
【问题讨论】:
-
要列出获取最近 5 个文件夹的列表,您可以
ls -tl | grep ^d | head -5 | awk '{print $NF}'按最近的程度列出目录中的文件/目录,获取所有目录,获取前 5 个文件夹,然后获取那些目录名:) -
另一种获取最近 5 个目录的方法是使用 awk
ls -tl | awk '/^d/{if (count<5) {print $NF; count +=1}}'