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下拷贝命令中的文件过滤操作记录缩略图 Linux下拷贝命令中的文件过滤操作记录](https://www.72715.net/wp-content/uploads/2023/05/fa61a37a116ee4333a2efbadfe056e9e.png)
这里使用了星号(*)作为通配符来表示“匹配所有类型和数量”的字符,同时还加上了固定的文件名前缀”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系统中非常常用的一种技巧,可以帮助我们更加高效地进行文件管理和拷贝。本文介绍了通配符、排除特定文件、按照日期过滤等几种实用的方法,并提供了详细的命令示例。希望能够对大家有所帮助。