如何在linux上使用空格移动多个文件

如何在linux上使用空格移动多个文件,linux,xargs,mv,Linux,Xargs,Mv,您好,我是linux新手,我要问的是关于使用awk和xargs在linux上移动文件的问题,如果我重新发布,请道歉 我有大约1000-5000个这样的文件: -rw-rw-r--1 wm文件77641 Mar 3 11:20 sendOrder.ZBAM.0005167032-20130503 11:20:35.txt -rw-rw-r--1 wm文件77647 Apr 3 11:20 sendOrder.ZBAM.0005167033-20130503 11:20:36.txt -rw-rw-

您好,我是linux新手,我要问的是关于使用awk和xargs在linux上移动文件的问题,如果我重新发布,请道歉

我有大约1000-5000个这样的文件:

-rw-rw-r--1 wm文件77641 Mar 3 11:20 sendOrder.ZBAM.0005167032-20130503 11:20:35.txt
-rw-rw-r--1 wm文件77647 Apr 3 11:20 sendOrder.ZBAM.0005167033-20130503 11:20:36.txt
-rw-rw-r--1 wm文件77655 May 3 11:20 sendOrder.ZBAM.0005167034-20130503 11:20:37.txt
-rw-rw-r--1 wm文件77661 May 3 11:20 sendOrder.ZBAM.0005167035-20130503 11:20:38.txt
-rw-rw-r--1 wm文件77556 May 3 11:20 sendOrder.ZBAM.0005167036-20130503 11:20:39.txt
-rw-rw-r--1 wm文件77549 May 3 11:20 sendOrder.ZBAM.0005167037-20130503 11:20:40.txt
-rw-rw-r--1 wm文件77549 Jun 3 11:20 sendOrder.ZBAM.0005167038-20130503 11:20:41.txt
-rw-rw-r--1 wm文件77543 Jun 3 11:20 sendOrder.ZBAM.0005167039-20130503 11:20:42.txt

如您所见,文件名在-20130503 11:20:42.txt处包含空格,因此我使用:

步骤1


在步骤1中,我已经在一些.files中获得了我想按“五月”的月份移动的列表文件

步骤2


第二步行不通。。我该怎么办?我正在使用Linux CentOS 5.3

实现这一点的方法大概有400种。。使用“查找”可能是更有效的方法,但是:

可以使用for循环:

for i in `ls`; do mv $i dir/newdir/; done
或者使用步骤1中创建的文件执行while循环:

ls -la|grep -e "May"|awk "{print $9, $10}" > some.files; cat some.files | while read mFILE; do mv $mFILE dir/newdir; done
或使用find(其中+30大于X天):

或者,如果要使用awk和xargs:

ls -la|grep -e "May"|awk "{print $9, $10}" | xargs mv dir/newdir/

使用GNU Parallel,您可以执行以下操作:

 ls | parallel -X mv {} dir/newdir/
10秒安装:

wget -O - pi.dk/3 | sh

了解更多信息:

这个问题似乎离题了,因为它是关于使用Unix命令1的。不要解析
ls
。2.使用
find
列出文件,然后通过管道输出到
xargs
或使用
-exec
选项。3.提高你的搜索技能;您可以找到许多类似问题的示例。我可以使用find列出文件吗?因为我需要关于所选月份的文件列表,所以我使用awk。请参阅
man find
。请尝试查看右侧的一些问题(列出的是与
相关的
)。请注意
查找
选项也会在子文件夹中查找文件!您可以添加
-maxdepth 1
以防止出现这种情况。
ls -la|grep -e "May"|awk "{print $9, $10}" | xargs mv dir/newdir/
 ls | parallel -X mv {} dir/newdir/
wget -O - pi.dk/3 | sh