我在一个文件夹中保存了 2013 年至 2015 年的大约 500 个 .txt 文件,我需要将 2013 年和 2014 年的所有文件移动到其他文件夹中。
答案1
假设“2013 年和 2014 年”的意思是“修改时间为 2013 / 2014 年”,你可以使用以下命令获取文件列表:
stat -c '%y %n' * | grep -v '^2015' | cut -d " " -f 4-
它的作用是:
统计-c'%y%n'
打印最后修改时间和文件名
*
文件夹中的所有文件
grep -v '^2015'
不包括 2015 年的
剪切 -d " " -f 4-
最后去掉时间戳,只留下文件名(假设您没有带有嵌入换行符的奇怪文件名)
然后,您可以使用类似的工具xargs
或甚至 for 循环(如果字符允许)来处理文件,以将它们移动到所需的文件夹。
答案2
如果这些文件的名称中包含年份,则非常简单。如果您熟悉终端,下面是一个例子。
假设您想将 2013 年的所有文件移动到名为“2013files”的文件夹中,并且它们的名称类似于“2013 stuff.txt”或“january 2013.txt”
转到你的文件夹
cd /path/to/your/folder/
创建要移动文件的文件夹
mkdir 2013files
然后移动名称中带有“2013”的所有文件
rename ./*2013*.txt ./2013files
重要提示:在使用“rename”命令之前,请改用“cp”,以确保您没有输入任何错误,否则您最终可能只得到一个文件。
重要提示(2):做任何事情之前,一定要备份你的文件