我想重命名I文件,这是一个变量,但我有问题。重命名文件,而不是文件路径中的目录
$ mkdir -p ~/foo/fooYes/
$ touch ~/foo/fooYes/fooYes.txt
$ OUTPUT=~foo/fooYes/fooYes.txt
$ echo $OUTPUT
~/foo/fooYes/fooYes.txt
$ rename 's/fooYes/fooNo/' "${OUTPUT}"
Can't rename '/Users/medialab/foo/fooYes/fooYes.txt' to '/Users/medialab/foo/fooNo/fooYes.txt': No such file or directory
两个问题:
为什么告诉我,我不能重命名?
更重要的是,我想重命名fooYes.txt,而不是它的父目录。
我使用上面的简化示例作为shell脚本的填充我有其中“$ {OUTPUT}”是ffmpeg命令的结果。我想重命名“$ {OUTPUT}”的基本名称,但由于它与其父目录共享相同的名称(当然不包括扩展名),因此它是父目录,而不是重命名的“$ {OUTPUT}”。
您似乎已经创建目录'fooYes',但不是'fooNo';您正尝试复制到不存在的目录。 ''/Users/medialab/foo/fooNo/fooYes.txt':没有这样的文件或目录' –
尝试使用mv命令(移动)而不是重命名 – Mike76
@ Mike76将mv允许我重命名一个变量? – Bleakley