在 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