Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
在Linux中基于修改日期复制文件_Linux_Bash_Cp - Fatal编程技术网

在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