Linux下拷贝命令中的文件过滤操作记录

1、通配符2、排除特定文件3、按照日期过滤在Linux系统中,本文将介绍Linux下拷贝命令中的文件过滤操作,参数来表示匹配所有在指定日期之后被修改或者创建的文件:

在Linux系统中,经常需要使用拷贝命令将文件从一个地方复制到另一个地方。然而,有时候我们只需要复制其中一部分文件,而不是全部复制。这时候,就需要用到文件过滤操作。

本文将介绍Linux下拷贝命令中的文件过滤操作,并记录一些常用的实例和技巧。

通配符

通配符是指在匹配字符串时可以代替任何字符或者一组字符的符号。在Linux系统中,常见的通配符有以下几种:

– *:匹配任意数量、任意类型的字符。

– ?:匹配单个任意字符。

– [ ]:匹配指定范围内的任意单个字符。

举个例子:

假设当前目录下有以下几个文件:

“`

file1.txt

file2.txt

file3.dat

file4.docx

如果我们只想把以”.txt”结尾的所有文件都复制到另一个目录里面去,可以使用如下命令:

cp *.txt /path/to/destination/

这里使用了星号(*)作为通配符来表示“匹配所有类型和数量”的字符。这样就会把当前目录下以”.txt”结尾的所有文件都复制到”/path/to/destination/”目录里面去。

如果我们只想把以”file1″开头的文件都复制到另一个目录里面去,可以使用如下命令:

cp file1* /path/to/destination/

Linux下拷贝命令中的文件过滤操作记录

这里使用了星号(*)作为通配符来表示“匹配所有类型和数量”的字符,同时还加上了固定的文件名前缀”file1″。这样就会把当前目录下以”file1″开头的所有文件都复制到”/path/to/destination/”目录里面去。

排除特定文件

有时候我们需要排除某些特定的文件,而不是全部复制。这时候可以使用“!”符号来表示“不包括”的意思。

如果我们只想把以”.txt”结尾的所有文件都复制到另一个目录里面去,并且排除掉名字为”file2.txt”的那个文件,可以使用如下命令:

cp *.txt ! file2.txt /path/to/destination/

这里使用了星号(*)作为通配符来表示“匹配所有类型和数量”的字符。同时还加上了排除特定文件(即名字为“file2.txt”)的操作,用感叹号(!)来实现。

按照日期过滤

有时候我们需要根据文件的创建时间或者修改时间来过滤文件。这时候可以使用“-newer”和“-mtime”参数来实现。

file1.txt(2020年1月1日修改)

file2.txt(2020年2月5日修改)

file3.dat(2020年3月10日创建)

file4.docx(2020年4月15日创建)

如果我们只想把所有在2020年3月10日之后创建的文件都复制到另一个目录里面去,可以使用如下命令:

cp -r * /path/to/destination/ -newermt 20200309

这里使用了“-newermt”参数来表示匹配所有在指定日期之后被修改或者创建的文件。同时还加上了”cp -r”命令,表示递归复制整个目录。

如果我们只想把所有在最近7天内被修改过的txt类型的文件都复制到另一个目录里面去,可以使用如下命令:

find . -type f -name “*.txt” -mtime -7 | xargs cp –parents /path/to/destination/

这里使用了“find”命令来查找符合条件的txt类型的文件,并且加上了”-mtime”参数表示匹配最近7天内被修改过的文件。然后再通过管道符号(|)将结果传递给”xargs cp –parents”命令来进行拷贝操作。

文件过滤操作是Linux系统中非常常用的一种技巧,可以帮助我们更加高效地进行文件管理和拷贝。本文介绍了通配符、排除特定文件、按照日期过滤等几种实用的方法,并提供了详细的命令示例。希望能够对大家有所帮助。