在Linux中基于修改日期复制文件
我想将过去三个月的文件从一个目录复制到另一个目录,但使用以下命令只能找到列出的文件在Linux中基于修改日期复制文件,linux,bash,cp,Linux,Bash,Cp,我想将过去三个月的文件从一个目录复制到另一个目录,但使用以下命令只能找到列出的文件 find . -mtime -90 -ls 如何使用-mtime复制文件?我首先临时存储文件列表并使用循环 find . -mtime -90 -ls >/tmp/copy.todo.txt 如果列表不是太大,你可以用 for f in `cat /tmp/copy.todo.txt`; do echo $f; done 注:关于猫的引号。。。是反勾号,通常在键盘的左上角 然后,可以将该命令替换为“复
find . -mtime -90 -ls
如何使用
-mtime
复制文件?我首先临时存储文件列表并使用循环
find . -mtime -90 -ls >/tmp/copy.todo.txt
如果列表不是太大,你可以用
for f in `cat /tmp/copy.todo.txt`;
do echo $f;
done
注:关于猫的引号。。。是反勾号,通常在键盘的左上角
然后,可以将该命令替换为“复制”命令:
for f in `cat /tmp/copy.todo.txt`;
do cp $f /some/directory/
done
使用
-exec
选项进行查找
:
find . -mtime -90 -exec cp {} targetdir \;
-exec
会将find
返回的每个结果复制到指定的目录(targetdir
,在上述示例中)。使用以下命令:
for i in `ls -lrt | grep "jul" | awk '{print $9}' `; do cp $i* /some/folder/; done
您还可以选择准确的日期和时间,而不是返回到特定的天数:
cp `find . -type f -newermt '18 sep 2016 20:05:00'` FOLDER
上述文件将2016年9月18日20:05:00后创建的目录中的所有文件复制到文件夹中(今天之前三个月:)
注意find命令的符号。不是这个:'
这是一个背景:`
日期选择与以下内容一致:'
如果文件名中有空格、换行符、制表符或通配符,则可以使用Stéphane Chazelas提供的任一解决方案。第一个是GNU,第二个是GNU或某些:
示例:选择日期2017年8月9日
ls -l
-rw-rw-rw- 1 root system 943 Aug 09 02:59 File
for j in `ls -l |awk '{ if ($7 == "09") print $9}'`
do
mv $j $Destination;
done
在我的键盘上,背景符号位于右上角。在问号旁边。(欧洲/北欧键盘)嗯,我正在使用zshell
。我所有的文件都不见了。我使用了mv
命令。如果要在一段时间内移动文件,请使用find-f类时间标准-exec mv-t target_dir{}+
@yinchaonline:什么决定了周期?“时间标准”是文字吗?如果没有,语法/内容是什么?应该进行解释(特别是因为它似乎使用并且似乎假定了有关ls
的输出的某些内容-例如,如果是德语,它会工作吗?)。
ls -l
-rw-rw-rw- 1 root system 943 Aug 09 02:59 File
for j in `ls -l |awk '{ if ($7 == "09") print $9}'`
do
mv $j $Destination;
done