在命令行中复制特定文件

时间:2012-10-20 11:40:26

标签: sed awk

我想在10月16日至17日复制最后一次更改的特定文件,文件类型为java。

shia@ubuntu:~/code$ ls -alxo
total 96
drwx------  2 shia  4096 Oct 20 18:54 .
drwxr-xr-x 61 shia 12288 Oct 20 19:24 ..
-rw-------  1 shia 12288 Oct 16 21:52 .Reuse.java.swp
-rw-rw-r--  1 shia   746 Oct 20 11:16 Argus.class
-rw-rw-r--  1 shia   302 Oct 20 11:16 Argus.java
-rw-------  1 shia   310 Oct 16 21:30 Call.java
-rw-rw-r--  1 shia   417 Oct 17 15:20 Ordinary.class
-rw-rw-r--  1 shia   298 Oct 17 14:57 Overriding.java
-rw-rw-r--  1 shia   562 Oct 19 21:27 Package.class
-rw-rw-r--  1 shia   430 Oct 19 21:27 Package.java
-rw-------  1 shia   729 Oct 17 13:50 Reuse.java
-rw-------  1 shia   424 Oct 17 13:47 Room.java
-rw-------  1 shia   321 Oct 16 21:22 Simpleobject.java
-rw-rw-r--  1 shia  1187 Oct 17 00:04 Static.java
-rw-rw-r--  1 shia   686 Oct 17 15:20 Super.class
-rw-rw-r--  1 shia  1010 Oct 17 15:20 Super.java
-rw-------  1 shia   843 Oct 17 14:20 This.java
-rw-rw-r--  1 shia   521 Oct 17 14:51 b.java
-rw-rw-r--  1 shia    90 Oct 20 18:54 cp.awk
-rw-rw-r--  1 shia   105 Oct 20 17:19 file.txt

我尝试对它们进行具体说明,但我不知道如何复制它们。

shia@ubuntu:~/code$ ls -alxo|grep 'Oct 1[67].*java$'|awk '{print $8}'
Call.java
Overriding.java
Reuse.java
Room.java
Simpleobject.java
Static.java
Super.java
This.java
b.java

任何帮助,非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以使用xargs复制找到的文件:

...| xargs -i cp '{}' /home/user/dstFolder/

这会将找到的所有文件复制到文件夹/home/user/dstFolder/

答案 1 :(得分:1)

使用find的一种方式:

find . -maxdepth 1 -type f -name "*.java" -newermt 2012-10-16 ! -newermt 2012-10-18 -exec cp '{}' /home/user/dstFolder/ \;