Shell:如何将除上次修改的文件以外的所有文件移动到另一个目录
如何移动目录中除最近修改时间的文件外的所有文件?假设GNU coreutils:Shell:如何将除上次修改的文件以外的所有文件移动到另一个目录,shell,Shell,如何移动目录中除最近修改时间的文件外的所有文件?假设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发出修改的类型和文件类型 排序按时间排序 grep忽略子目录 head列出除最新文件以外的所有文件 cut仅提取文件名 xargs提供文件名作为mv 假设几乎没有: mv
stat -c "%Y:%F:%n" * |
sort -t: -n |
grep ':regular file:' |
head -n -1 |
cut -d: -f3- |
xargs mv -t other_directory
发出修改的类型和文件类型stat
按时间排序排序
忽略子目录grep
列出除最新文件以外的所有文件head
仅提取文件名cut
提供文件名作为xargs
mv
mv $(ls -lt | grep ^- | awk 'NR>1 {print $NF}') other_directory
使用
ls-l | grep^-
我们对普通文件进行grepls-t
按mtime对其排序,最年轻的优先。Awk然后剥离最小的,只打印文件名。Unix不是很酷吗 通过使用下面的方法实际解决了这个问题:
find/Users/tb582/Desktop/scripts/output-type f-maxdepth 1-not-cmin-2-exec mv{}/Users/tb582/Desktop/scripts/output/archive\代码>我想您指的是UNIX shell。有关查找实用程序的更多信息,请尝试man find
。我认为更新的
是您正在寻找的选项。编辑:derp。had-mtime
而不是明显的更新的
。这可能会留下比最年轻的文件更多的未移动文件。