我有一个使用tar归档一堆目录的脚本,下面是片段..
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 64位
谢谢。
答案 0 :(得分:1)
您可以尝试使用以下内容:
find /usr2/devel_snapshots \
-type d \
-maxdepth 1 \
-mindepth 1 |
sort -r |
head -5 |
xargs tar -X $BASE/synclive_exclude.list -cf - \
/usr2/docs /usr2/devel_backup /usr2/devel_config \
/usr2/devel_logs /usr2/devel_reports /usr2/doc-files |
gzip > $DUMP_DIR/stage/usr2.tar.gz &
ls,sort和head将获取最新的5个目录,使用xargs,您可以将结果作为参数提供给tar命令