Shell:如何移动所有文件,但最后修改到另一个目录

时间:2012-05-16 03:59:28

标签: shell

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

3 个答案:

答案 0 :(得分:1)

几乎没有假设:

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

使用ls -l|grep ^-我们grep查看普通文件。 ls -t按照mtime排序,最小的是第一个。然后Awk剥离最年轻的并打印文件名。是不是很酷!?

答案 1 :(得分: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
  • 的参数

答案 2 :(得分:0)

实际上是通过使用以下内容来解决的:

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