find + xargs + cp 遇到文件名中带空格如何处理

一,需求为查询文件名为ZRSH开头的时间为7月至今的所有文件并打包

 1.首先想到的就是find + xargs + cp  格式。。

  find 2016073* -type f  -name *ZRSH\*   |xargs  cp {} ./data/

  执行之后发现说查询出来的文件不是目录,很讶异,于是直接执行find 2016073* -type f  -name *ZRSH\*    文件都查询出来没有任何问题。。

2.猜测是cp 的时候有意想不到的问题发生。于是直接cp测试报文。发现文件名中存在空格,默认把空格后方的部分文件名当做目录报错了。

   find 2016072* -type f  -name *ZRSH\*  -print |xargs  cp {} ./data/  执行说文件名过长

  find 2016072* -type f  -name *ZRSH\*  -print |xargs -i cp {} ./data/

3. 执行后仍然报错,发现cp 的时候根本没法将文件中带有空格的整合至一起。 单独执行cp 时将带空格文件名用双引号括起来会直接执行。

  find 2016072* -type f  -name *ZRSH\*  -print |xargs -i cp ‘{}‘ ./data/  成功。。

4. tar 包

  tar -zcvf data.tar.gz data

时间: 2024-08-02 14:25:56

find + xargs + cp 遇到文件名中带空格如何处理的相关文章

Shell 处理文件名中包含空格的文件

最近在学Gradle, 使用git clone 命令下载了一些资料,但是文件名含有空格,看上去不是很舒服,因此想到用shell脚本对其进行批处理,去掉文件名中的空格,注意这里是把所有的空格全去掉 git clone https://github.com/waylau/Gradle-2-User-Guide-Demos.git Shell脚本: ######################################################################### # F

response.setHeader("Content-disposition","attachment;filename="+fileName) 下载时文件名中存在空格错误

最近在进行文件下载时发现一个问题,就是下面语句运行时,下载某些文件正常,下载某些文件异常,后来发现文件名中有空格的文件火狐浏览器是默认将文件名截断了的 response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes("gb2312"),"iso8859-1")); 但是在IE上面就是正常的,解决问题的方法有

修改文件名并去除文件名中的空格

1 //修改文件名 2 private static void ReviseFileName(string[] files) 3 { 4 for (int i = 0; i < files.Length; i++) 5 { 6 string file = files[i]; 7 string newFile = RemoveBlank(file); 8 File.Move(file, newFile); 9 } 10 } 11 //去除字符串中的空格 12 private static stri

远程http请求时,后缀带空格,请求报错问题(类似word文档标题中带空格)

当我们远程请求一个链接,类似:http://nbcb.ningbobank.test:8088/approve/goFile/我的  带 空格 的文档.docx?operate 的时候,我们要下载的时候,会报url错误,虽然我们在浏览器的地址栏可以访问,但是我们用方法进行读取下载的时候,就会报地址不存在的错误. 这主要是因为我们的url路径中带有空格,阻止了我们进行访问 . 要想有效的进行下载访问,我们需要将最后的"/"后面的和"."前面的进行encode编码,这样

C/C++ 中带空格字符串输入的一些小trick

今天在重温 C++ 的时候发现自己存在的一些问题,特此记录下来. 我们可以看一下下面这段代码: #include <iostream> #include <cstdio> #include <string> #include <cctype> using namespace std; int main(int argc, char const *argv[]) { string s; cin >> s; int cnt[26]={0};//字母统

git bash中带空格的文件夹以及文件的处理

空格用'\ '表示,输入的时候,是不需要单引号的 total 338drwxr-xr-x 9 Administ Administ 4096 Aug 24 23:53 HDTHelperdrwxr-xr-x 1 Administ Administ 4096 Oct 25 03:15 HDTTestsdrwxr-xr-x 11 Administ Administ 4096 Sep 15 00:14 HDTUninstallerdrwxr-xr-x 1 Administ Administ 4096 M

025批量删除mac文件名中的空格

一. 在准备王陆语料库资料时发现给的录音文件好多带有空格,不喜欢这样的,而且不方面mac下搜索和查找,所以想把它全部删掉,命令如下: find . -name "* *"| while read name do na=$(echo $name|sed -e 's/^..//g'|tr -d "[:space:]") mv "$name" $na done 效果如下: 原文地址:https://www.cnblogs.com/itcomputer/

批量去除文件名中的空格

#!/bin/bash for dir in `ls -1` do cd /project/ICNL9999/library/FAB_DATA/Nexchip150nm-S3.3_13.5V/ cd $dir for file in `ls -1 | tr ' ' '#'` do mv "`echo $file | sed 's/#/ /g'`" "`echo $file | sed 's/#//g'`" done done 原文地址:http://blog.51c

MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格

测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 %1)strfind(a,b):即找a中是否有b,如果a中有b,则输出b的位置序号.没有输出空数组 %2)isempty(a):判断数组是否为空 %3)strrep(a,b,c):就是把a中所有出现的b换为c %4)movefile(a,b):a移动为b,如C:\test1.jpg移动为C\test2