0

如何移动目录中的所有文件,除了最近修改时间的文件?

4

3 回答 3

1

假设几乎没有:

mv $(ls -lt | grep ^- | awk 'NR>1 {print $NF}') other_directory

我们用ls -l|grep ^-grep 搜索普通文件。ls -t按 mtime 对它们进行排序,最年轻的在前。awk 然后剥离最年轻的文件,只打印文件名。Unix不酷吗!?

于 2012-05-16T14:20:52.083 回答
0

实际上是通过使用以下方法弄清楚的:

find /Users/tb582/Desktop/scripts/output -type f -maxdepth 1 -not -cmin -2 -exec mv {} /Users/tb582/Desktop/scripts/output/archive \;

于 2012-05-16T20:04:03.030 回答
0

假设 GNU coreutils:

stat -c "%Y:%F:%n" * |
sort -t: -n |
grep ':regular file:' |
head -n -1 |
cut -d: -f3- |
xargs mv -t other_directory
  • stat发出修改后的类型和文件类型
  • sort按时间排序
  • grep忽略子目录
  • head列出除最新文件之外的所有文件
  • cut仅提取文件名
  • xargs提供文件名作为参数mv
于 2012-05-16T14:06:40.590 回答