说我有以下代码,
mkdir $1
# Output that the folder was created and the name
echo "The folder was created and name is: `echo $1`"
touch $2
# Output that the file was created and the name
echo "The file was created and name is: `echo $2`"
如何将创建的文件移动到创建的参数文件夹?
答案 0 :(得分:2)
touch "$1/$2"
假设$2
是一个简单的名称。或者,如果您必须使用mv
,那么:
touch "$2" &&
mv "$2" "$1"
或者:
touch "$2" &&
mv "$2" "$1/$2"
如果$2
不是简单的文件名但包含一些路径信息,您可能需要考虑会发生什么。在这种情况下,第一个“触摸和移动”组合可以说更安全。请注意,在移动创建的文件之前,这些版本会检查touch
是否成功。另请注意,如果文件已存在,touch
可正常工作,并且该文件将移动到目标目录。如果文件不存在(还),你必须再努力工作。这就是这些问题的问题 - 有许多情况可能需要处理,但可能不适用于家庭作业问题(但必须考虑更接近'生产代码')。
否则,如果$2
可能是包含路径信息的名称:
mkdir "$1" || exit 1
base=$(basename "$2")
touch "$1/$base" || exit 1
或者,如果你想要搬家,那么:
mkdir "$1" || exit 1
touch "$2" || exit 1
mv "$2" "$1"
注意文件名周围的引号;即使名称包含空格或其他笨拙的字符,它们也会起作用。另请注意,如果$2
指定目录,mv
版本的东西将移动(新创建的)$1
目录下的整个目录。
答案 1 :(得分:2)
您需要使用命令mv
即。 mv $2 $1
答案 2 :(得分:0)
mv $2 $1
会成为您想要的吗?
答案 3 :(得分:0)
mv $2 $1
echo "The file $2 was moved to $1"
请注意,您不需要在每个命令中使用第二个echo
:
echo "The folder was created and name is: $1"
答案 4 :(得分:0)
检查哪些命令可用于复制,或者在这种情况下,移动您创建的文件。还有什么阻止你直接在创建的文件夹中创建文件?