Linux 使用参数和空格重命名?

Linux 使用参数和空格重命名?

在 Linux 中,是否可以将文件名称从不带空格重命名为包含空格?

我知道我可以通过执行以下操作来创建带有空格的目录和文件:
mkdir "new dir"和:
touch "new file.txt"

我想将文件从:重命名
imgp0882.jpg为类似以下内容:
20091231 1243 some topic.jpg

它在使用了如下参数的 shell 脚本中看起来是怎样的: ?
for i in *.jpg do
rename "$i" "$somepath/$mydate $mytime $mytopic$extension"

一点背景知识:

  • 我是 Linux 新手(使用 PCLinuxOS 2009.2),之前用的是 Windows,我写了一个小 shell 脚本,用于从相机下载文件,然后根据日期和主题模式自动重命名。您现在应该猜到了,我被重命名难住了。
  • 如果你想看我的剧本,这是副本
  • 我没有使用jhead这个重命名功能,因为它只适用于 JPEG 文件,但我想要一个适用于任何媒体格式(包括视频)的单一解决方案。

答案1

也许你需要加上引号所有的目标路径?例如

$ touch test
$ a=one
$ b=two
$ mv "test" "$a $b"
$ ls -la
total 8
-rw-r--r--  1 whitequark whitequark    0 2010-01-27 01:21  
-rw-r--r--  1 whitequark whitequark    0 2010-01-27 01:20   
drwxr-xr-x  2 whitequark whitequark 4096 2010-01-27 01:21 .
drwxr-xr-x 80 whitequark whitequark 4096 2010-01-27 01:16 ..
-rw-r--r--  1 whitequark whitequark    0 2010-01-27 01:21 one two

答案2

如果您使用 bash,请用反斜杠转义空格:

My\ File\ Name.jpg

相关内容