linux因文件名称包含空格问题而操作文件失败

用指令在linux系统中操作文件时,如果文件名称中包含空格的话,如:

libreoffice6.1 --headless --invisible --convert-to pdf:writer_pdf_Export /files/business/文 件 空格 问题 排查 第二 波 .20190829111359.TXT --outdir /files/business

就会出现报错,如下:

Error: source file could not be loaded

那么这个时候就应该在全路径或者文件名上增加单引号或双引号
如下:

libreoffice6.1 --headless --invisible --convert-to pdf:writer_pdf_Export ‘/files/business/文 件 空格 问题 排查 第二 波 .20190829111359.TXT’ --outdir /files/business

或者

libreoffice6.1 --headless --invisible --convert-to pdf:writer_pdf_Export /files/business/‘文 件 空格 问题 排查 第二 波 .20190829111359.TXT’ --outdir /files/business

同时说一下二者区别:双引号不输出带特殊字符的字符,如果要忽略特殊字符,就可以利用在符号前加" \ "来转义。单引号则是里面写的啥就传啥

echo “my $like is apple”
my is apple
echo ‘my $like is apple’
my $like is apple

还有需要注意的是,如果需要在java代码中操作系统,应按如下发布指令

String command = “你要执行的指令”;
Runtime.getRuntime().exec(new String[]{"/bin/sh", “-c”, command});

第一个参数和第二个参数固定填如上值,第三个参数是你想执行的指令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用命令行工具来删除文件名中的空格。具体步骤如下: 1. 打开终端,进入要操作的目录。 2. 使用以下命令来查看当前目录下的所有文件名: ``` ls ``` 3. 如果文件名中有空格,可以使用以下命令来删除空格: ``` rename 's/ //g' * ``` 这个命令会将所有文件名中的空格替换为空字符,从而删除空格。 4. 使用以下命令再次查看文件名,确认空格已经被删除: ``` ls ``` 如果文件名中的空格已经被删除,那么操作就完成了。 ### 回答2: 在Linux中,可以使用命令行来删除文件名中的空格。下面是两种常见的方法: 方法一:使用通配符和mv命令 使用通配符可以匹配文件名中的空格,并通过mv命令将文件进行重命名,从而删除空格。 1. 打开终端并进入要操作文件所在的目录。 2. 使用ls命令列出目录中的文件文件夹,确认要删除空格文件名。 3. 使用mv命令将文件进行重命名。例如,若要将文件名中的空格替换为下划线(_),可以使用以下命令: mv "原文件名" "新文件名" 例如,如果要删除名为"my file.txt"的文件中的空格,可以使用以下命令: mv "my file.txt" "my_file.txt" 方法二:使用find命令和rename命令 使用find命令和rename命令可以批量处理文件名中的空格。 1. 打开终端并进入要操作文件所在的目录。 2. 使用以下命令来查找所有包含空格文件名: find . -type f -name "* *" 3. 使用rename命令对找到的文件进行重命名。以下是一个例子: find . -type f -name "* *" -exec rename ' ' '_' {} \; 这个命令将找到的所有文件中的空格替换为下划线(_)。 以上是两种在Linux中删除文件名空格的方法。根据个人需求选择合适的方法进行操作。 ### 回答3: 在Linux中,要删除文件名中的空格,可以使用以下命令: 1. 使用find命令配合rename命令进行批量重命名: ```bash find /path/to/directory -type f -name '* *' -exec rename 's/ /_/g' {} + ``` 这个命令会在指定的目录下查找所有包含空格文件名,并将其空格替换为下划线。例如,如果有一个文件名是 "my file.txt",它将被重命名为 "my_file.txt"。 2. 使用rename命令直接对单个文件进行重命名: ```bash rename 's/ /_/g' /path/to/file ``` 这个命令将指定文件中的所有空格替换为下划线。 3. 使用mv命令将含有空格文件移动到新的文件名: ```bash mv /path/to/file /path/to/new_file_name ``` 这个命令将指定文件移动到新的文件名,并且在新的文件名中不包含空格。 无论使用哪种方法,都需要指定文件的路径和文件名。如果文件名包含路径,需要使用相应的路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值