Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell:如何将除上次修改的文件以外的所有文件移动到另一个目录_Shell - Fatal编程技术网

Shell:如何将除上次修改的文件以外的所有文件移动到另一个目录

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

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

假设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 $(ls -lt | grep ^- | awk 'NR>1 {print $NF}') other_directory

使用
ls-l | grep^-
我们对普通文件进行grep
ls-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
而不是明显的
更新的
。这可能会留下比最年轻的文件更多的未移动文件。