如何移动目录中的所有文件,除了最近修改时间的文件?
问问题
283 次
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 回答