【发布时间】:2014-12-10 22:30:49
【问题描述】:
我正在编写我的第一个脚本,该脚本获取一个文件并将其移动到另一个文件夹,除了我想将文件的文件名更改为 filename_inode 而不仅仅是文件名,以防有任何同名的文件
我已经弄清楚如何通过创建以下 4 个变量来显示这一点
inode=$(ls -i $1 | cut -c1-7) #列出用户输入的文件,从中删除inode
space="_" #用来放在文件名和bname之间
bname=$(basename $1) #获取文件的基本名称,不包括目录等
bnamespaceinode=$bname$space$inode #将3个值合并为一个变量
echo "$bnamespaceinode #prints filename_inode 到窗口
所以底部回显显示 filename_inode 这是我想要的,除了现在当我尝试使用 mv 或 cp 移动它时,我收到以下错误
我认为我用于 mv 和 cv 命令的语法没有任何问题,所以我想我需要将 3 个变量连接到一个新文件中或使用第一个变量的结果然后追加其他 2 个到那个文件?
我已经尝试了上述两种方法,但仍然没有任何运气,有什么想法吗?
谢谢
【问题讨论】:
-
如果你只是举一个例子来说明你有什么,你期望什么,会更容易。也请包括源目录和目标目录。
标签: unix filenames cp mv inode