我有一个文件夹,其中包含一些subversion版本检出(在运行capistrano部署配方时检出)。如何删除文件夹中除最新三个文件以外的所有文件
我真正想要做的是保持最新的3个版本,其中capistrano脚本签出并删除其他的,所以为此我打算运行命令在终端上运行一些命令,实际上capistrano hasn'这里没有任何事情要做,而是一个unix命令。
我试图运行一个命令来获取除最后三个文件以外的文件列表并删除其余的文件,我可以使用以下命令获取文件列表。
(ls -t /var/path/to/folder |head -n 3; ls /var/path/to/folder)|sort|uniq -u|xargs
现在,如果我添加一个rm -Rf到这个命令的末尾,它会返回我带有未找到的文件以进行删除。所以这很明显,因为这只返回文件夹的名称,而不是文件夹的完整路径。
有无论如何删除这些文件/文件夹使用一个Unix命令?
你好感谢你的反应,但我仍然得到的文件只有名字,我的主要需求之一是从服务器的任何目录运行此代码,并删除该文件在该var /路径/到/文件夹这很好,如果我在同一文件夹var/path/to /文件夹 – nivanka 2010-12-15 08:06:27
@nivanka:这真的很奇怪。你是指定一个相对或绝对路径?如果要从服务器上的任何目录运行此命令,则需要指定绝对路径。你能复制/粘贴你正在使用的* exact *命令吗? – AgentConundrum 2010-12-15 08:12:54
嗨,这是我做ls -t1/var/path/to/folder | tail -n +4 | xargs rm -r – nivanka 2010-12-15 08:55:29